2010-01-31 32 views
7

Tôi đang phát triển một ứng dụng android tôi cần chuyển từ hoạt động này sang hoạt động khác trong đó đầu tiên tôi cần thay đổi màu sắc của nút rồi trì hoãn (để) và sau đó gọi chức năng này tương tự (một trong những tôi đang trong nghi thức bây giờ)Java tương đương với [self performSelector: foo afterDelay: 2]

trong Objective-c nó được thực hiện với [tự performSelector: foo afterDelay: 2]

vì vậy tôi cần phải java tương đương của nó.

Trả lời

9

Đối với các hành động bị trì hoãn trong Android, tôi khuyên bạn nên sử dụng Android Handler class với số postDelayed() method.

Tạo một handler cho Activity của bạn như là một biến thành viên:

private Handler mHandler = new Handler(); 

Và sau đó thêm hành động chậm trễ của bạn như sau:

mHandler.postDelayed(new Runnable() { 
     public void run() { 
      //Do you thing here 
     } 
    },2000); 
+0

Lưu ý rằng bạn không nhất thiết cần một Handler cho điều này nếu bạn chưa có. 'postDelayed()' cũng có sẵn trên bất kỳ tiện ích nào (ví dụ: 'Nút'). – CommonsWare

+1

Hàm run() có thực thi trên cùng một luồng hoặc một luồng khác với lớp mà nó được gọi ra không? Nếu khác nhau, có cách nào để làm cho nó chạy trong cùng một luồng không? –

Các vấn đề liên quan