私はここでかなり奇妙な問題があります。フラグメントでは、私はプロセスを行い、プロセスが終了すると、ユーザーが広告をクリック/ディスマウントしたときにフラグメントにコールバックする広告を表示します。問題は、一部のデバイスでは、広告がハンドラ(実行中のフラグメントにある)にコールバックしたときに、フラグメントを含むアクティビティが破棄されていることですが、実行可能ファイルでさらに処理を行う必要があります。したがって、この場合runnableはNullPointerExceptionをスローします。intは実行されるとメソッドが実行されます。アクティビティが破棄されたときに何をするべきですか?フラグメントでコードを実行し続ける必要がありますか?
私はアクティビティがまだ生きているかどうかをチェックして、それが実行中のときだけランナブルを実行できますが、それでも生きていない場合は、後で実行する必要があるジョブの部分を引き続き行う必要があります。広告。
このような状況をどのように処理しますか?私はこの問題を解決することなく、何時間も問題を考えてきました。
ありがとうございます。
私は他の任務のためにAsyncTasksを使用しました。しかし、本当にここで助けてくれると思いますか? AsyncTaskを実行するときよりも、アクティビティが殺されないことを意味しますか? – Notbad
一方、問題を引き起こしているのは、私のアプリケーションから広告へのコンテキストの変更です。したがって、私の場合、プロセスの最初の部分についてはAsynTaskを、広告の表示 - >広告レスポンスハンドラ - >プロセスの第2部分のAsyncTaskを行う必要があります。これは同じ問題につながりませんか?アクティビティが死んでいる可能性があるため、2番目のAsyncTask(ジョブ継続)を開始することはできません。 – Notbad
AsyncTaskは、アクティビティが破棄された場合でも、常にその実行を完了します。アクティビティが破棄されるとコンテキストはnullになりますので、ヌルチェックを行うことを忘れないでください。 –