2012-02-17 9 views
3

私はデバイスのホームボタンを押すとすべての非同期タスクを停止したいが、問題は進捗ダイアログが実行中でホームボタンでクリックすると進行状況ダイアログが終了し、私は私の非同期タスクを殺すためのロジックを述べているonKeyDown()メソッドに移動しません。したがって、非同期タスクは、アプリケーションが閉じられ、アプリケーションがクラッシュした後でも、バックグラウンドで実行されます。進行状況ダイアログとホームボタンクリックでのすべての非同期タスクを閉じる解決策はありますか?デバイス上のすべての非同期タスクをポップする方法ホームボタンをクリック

答えて

1

javaでは、起動して実行中のThreadを停止できません。したがって

ですが、thread.interrupt()のように動作するasyncTask.cancel()を呼び出すことができます。それはInterruptedExceptionを投げるかもしれません。後ろにコードがある場合は、これらのコードも実行されるので、注意してください。

1

ホームボタンへの呼び出しを直接傍受することはできません。ホームボタンを押してもonPause()が呼び出されるので、そのメソッドをオーバーライドしてロジックを配置することができます。

詳細

+0

ためhttp://developer.android.com/guide/topics/fundamentals/activities.html#Lifecycleをチェックし、実際の問題はそれほどいずれかが存在し、ダイアログが起動していると私はホームボタンを押して、にonKeyDown()進捗状況は、キーを押してキャプチャされませんが、それだけで進行状況ダイアログを閉じています進捗ダイアログを無効にする方法。 – abhishek

関連する問題