私はリスナーとしてアクティビティをとるマネージャクラスを持っています。私はマネージャーを使ってスレッドコールや作業などを行い、その後、リスナー(アクティビティ)にコールバックします。どのライフサイクルイベントがリスナーを登録/登録解除するのに最適ですか?
アクティビティが表示されなくなったときに、アクティビティをリスナーとして登録および登録解除したいとします。これにより、望ましくない変更が発生しないようにします(アクティビティが表示されなくなったときに表示されるダイアログなど)。
私の質問は、どのようなライフサイクルイベントがこの登録を行うのが最善かです。 onPause()とonResume()から始めました。これは、onActivityResult()で何かをしていたとき以外はうまくいきました。 onActivityResult()はonResume()よりも前に呼び出されるので、私のマネージャーは必ずしも時間通りに登録されません。
私はonResume()とonActivityResult()に登録する必要がありますか、これにはより良い方法がありますか?
アクティビティのライフサイクル全体にわたってリスナーが必要な場合は、onCreateとonDestroyを使用してください。 – Spidy
これは私のためには機能しません。ネットワークスレッドを送信し、ユーザーがアクティビティスタックで前方にナビゲートします。アクティビティはまだ登録されています(onDestroy()は呼び出されません)。コールが戻ってきて、ダイアログボックスをポップアップすると、アクティビティが表示されないためクラッシュします。 – sgarman