2011-12-02 32 views

Trả lời

7

Dưới đây là ý tưởng làm thế nào bạn có thể đạt được nhiệm vụ này:

Trước hết bạn cần một Runnable(), mà sẽ được chạy khi thời gian chờ của bạn (ví dụ 10 sec.) Xảy ra. Dưới đây là Runnable():

private Runnable DoOnTimeOut = new Runnable() 
{ 
    public void run() 
    { 
     // Do something Here 
    } 
} 

Bây giờ, trong hoạt động của bạn, bạn có thể gọi postDelayed cho DoOnTimeOut:

Handler hl_timeout = new Handler(); 

@Override 
public void onCreate(Bundle b) 
{ 
    hl_timeout.postDelayed(DoOnTimeOut, 10000); // The DoOnTimOut will be triggered after 10sec 
} 

Bây giờ, phần quan trọng nhất là khi bạn nhìn thấy tương tác người dùng, bạn muốn để hủy cuộc gọi đến DoOnTimeOut và sau đó đặt lại cuộc gọi trong 10 giây tiếp theo. Đây là phương pháp Ghi đè hoạt động của bạn cho tương tác của người dùng:

@Override 
public void onUserInteraction() 
{ 
    super.onUserInteraction(); 
    //Remove any previous callback 
    hl_timeout.removeCallbacks(DoOnTimeOut); 
    hl_timeout.postDelayed(DoOnTimeOut, 10000); 
} 

Tôi hy vọng nó sẽ hữu ích cho bạn.

+0

câu trả lời hay, bạn đã lưu ngày của mình! Cảm ơn – Ale

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