バックグラウンドで動作するスレッドを管理する適切な方法は何ですか?
たとえば、いくつかのスレッドを作成するアクティビティがあります。次のことを行う必要があります:
1) アプリケーションが破棄されたときにすべてのスレッドを破棄する
2) ユーザーがアクティビティから離れた場合、アクティビティ内で作成されたスレッドを一時停止する
3) アクティビティが破棄された場合、アクティビティ内で作成されたスレッドを破棄する
私の頭に浮かぶ唯一のことは、すべてのスレッド変数を public として宣言して、上記のイベントで t.destroy() などを発行できるようにすることです。第一に、これが正しい方法であるかどうかはまったくわかりません。第二に、作成したすべてのスレッドを確実に参照できるようにコードを変更する必要があるため、好きではありません。
たとえば、Activity が新しいオブジェクト (例: LoadImages.class) をインスタンス化し、そのオブジェクトがロードする画像の数に応じていくつかのスレッドを作成する状況があります。スレッドは、呼び出し元のアクティビティからは見えません。
それで、スレッド参照を呼び出しアクティビティに渡す必要がありますか、またはスレッドの親が誰であるかを知り、特定の親アクティビティを持つスレッドのみを破棄する方法がありますか?