2016-04-28 13 views
0

問題: 私は多くのアクティビティを持つ小さなアプリを持っており、1つにカウントダウンタイマーがあり、ゼロまで下がっています。しかし、あなたがこのアクティビティにいて、ユーザーがオーバービューボタン(右のアンドロイドボタン)を押すと、彼はすべてのアプリケーションでビューに来ましたが、アクティビティが停止または一時停止しなかったので、カウントダウンタイマーも停止しません。最悪の場合、ユーザーがアクティビティを再度開いてカウントダウンがゼロになりました(アクティビティを意味し、他のアクティビティを開くことを意味します)。Androidハンドルの概要ボタン(アクティビティの一時停止)

「概要ボタン」を扱う方法はありますか? (戻るボタンのようにgetPressedBack())

右のアンドロイドボタンの名前は "概要ボタン"(これは私がGoogleで見つけた..)だったので、私は良いGoogle検索を取得しません。

答えて

1

「概要」ボタンを押した後、OnPause()とonStop()を呼び出す必要があります。その後、手動で打撃を停止することができます。ユーザーがアクティビティに戻ると、onResume()が呼び出され、再度コールダウンを開始できます。

@Override 
protected void onPause() { 
    super.onPause(); 
    // Handle countdown stop here 
} 

@Override 
protected void onResume() { 
    super.onResume(); 
    // Handle countdown start here 
} 
+0

私はそのボタンに関する情報をもっと得ることができるので、それ以外の名前ですか? – Phil

+0

ボタンを操作する必要はありません。 onPause()メソッドは、アプリがフォーカスを失うたびに自動的に呼び出されます。その後、メソッドの中でcoundownを停止し、onResume()が呼び出されたときに再び開始することができます。このメソッドについての詳細は、こちらを参照してください。(http://developer.android.com/training/basics/activity-lifecycle/pausing.html) – TmCrafz

+0

OnResume()は、アクティビティからの開始ですが、これは扱いやすいものでした。 (ブール値付き) – Phil

0

私は右の戦略は活動上のメソッドをonKeyDownメソッドovveridingことで、押されたキーを確認することであると思う:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    i(e == yourKeyCode) { 
     stopYourTimer() 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

あなたのケースでOnKeyDownイベントにKeyEvent.VK_CONTEXT_MENUをチェックして、あなたのタイマーを停止します。

関連する問題