2012-02-16 49 views
0

メモリの不足のためにサービスのonDestroyが呼び出されたとき、そのメソッドでは、作業を終了する必要があることをワーカースレッドに通知するシステムがホスティングプロセスを終了させる前に、それらを待つか?もしそうなら、システムがどれくらいの時間待つことができるでしょうか?ワーカースレッドをできるだけ早く終了できるようにする必要がありますか?サービスがAndroidで終了しようとしているときにスレッドのクリーンアップを実行する

まったく間違っていますか?


それとも私が尋ねる必要があります。

をワーカースレッドをクリーンアップする最も安全なまたは最高のポイントはありますか?または、そうするための最も安全な方法は何ですか?あるいは、そのようなことはまったくありません。スレッドは、いつでも予告なく殺されるように準備する必要がありますか?

+0

onDestroyが私の選択です。 – Ruuhkis

答えて

0

IIRCライフサイクルメソッドでは、「応答していないアクティビティ」というメッセージが表示されるまで1-2秒待つことができます。一般に、これらの方法で何かを待つことはできません。

onDestroyは最後のライフサイクルメソッドであり、アプリケーションが単にバックグラウンドにあるときは呼び出されません。スレッドをバックグラウンドで実行しますか?それはあなたのアプリに依存しますが、それは通常悪い動作です。

onPause()は、アプリがフォアグラウンドでなくなったとき、または少なくともonStop()が表示されなくなったときに一時停止することをおすすめします。

+0

ええと... – BlueWanderer

+0

大文字のSサービスです。 –

+0

onDestroyの呼び出しが保証されていないと言われています。本当ですか?それが真実でない場合、onDestroyから戻る前にどれくらい待つことができますか。「長いIO操作が完了するのを待つことができたら、それとも放棄するべきですか? – BlueWanderer