2011-12-02 35 views
6

我需要使用空閒偵聽器來偵聽用戶正在使用應用程序,或者在活動處於活動狀態時處於空閒狀態。 我需要做一些事情,當用戶沒有使用超過10秒的應用程序。 我怎樣才能使它成爲可能?我怎樣才能讓屏幕空閒監聽器?

回答

7

這裏的想法如何可以實現這一任務:

首先你需要一個Runnable(),當你的超時時間(例如10秒)時,將運行。下面是可運行():現在

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

,在您的活動,您可以撥打postDelayed爲DoOnTimeOut:

Handler hl_timeout = new Handler(); 

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

現在,最重要的是,當你看到用戶交互,你想取消對DoOnTimeOut的呼叫,然後再次將呼叫設置爲接下來的10秒。以下是您的用戶交互活動的替代方法:

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

我希望這會對您有所幫助。

+0

偉大的答案,你救了我的一天!謝謝 – Ale