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