私は次のような状況にあります
- から長時間実行されるユーザースレッド(
Thread)を生成しますActivity。 - ソフトバックボタンを押します。だから、
Activity破壊されました。 - もう一度同じように起動
Activityします。Thread以前に起動されたものはまだ実行されていることに注意してください。
前のものがまだ実行されている間にActivity別の同じものを起動するのを防ぐために、これが私がしていることですThreadThread
- を起動した後
Thread、静的変数に格納します。したがって、次に同じスレッドを起動しようとするときに、静的変数を介して前のスレッドの活性をチェックします。これは良い習慣ですか?これを克服するためのベストプラクティスは何ですか?
ユーザースレッドは、Activityそれを起動したものへの参照を保持していることに注意してください。ただし、Activityユーザーがソフト戻るボタンを押すと、が破壊される可能性があります。したがって、新しいアクティビティを再度起動すると、threadはそのことに気づかず、まだ古いものを参照していActivityます。したがって、ユーザースレッドが古いメンバーにアクセスしようとすると、既に破棄さActivityれているためにクラッシュが発生します。これを克服するためのベストプラクティスは何ですか?Activity