2012-04-25 6 views

答えて

1

あなたはonResume()方法でUIスレッドのハンドラに遅れてメッセージを送信することができます

handler.sendEmptyMessageDelayed(SCREEN_INACTIVE_MSG, DELAY_MILIS); 

を次に、onTouchEventでメッセージを削除し、再度挿入します。あなたのハンドラで

handler.removeMessages(SCREEN_INACTIVE_MSG); 
handler.sendEmptyMessageDelayed(SCREEN_INACTIVE_MSG, DELAY_MILIS); 

を、 handleMessage()メソッドをオーバーライドしてメッセージを処理します。

public void handleMessage (Message msg) { 
    switch(msg.what) { 
     case SCREEN_INACTIVE_MSG: 
      handleIdleScreenMetohd(); 
      break; 
    } 
} 

また、onPause()のハンドラからメッセージを削除します。

これは、あなたのアクティビティが全期間アクティブであることを前提としています(一時停止していないなど)。あなたのアプリの外で画面の非アクティブを処理することは不可能と思われます。

関連する問題