Android:アクティビティが終了したかどうかを知る方法は?
-
26-10-2019 - |
質問
私は、特定のアクティビティ内から自動的かつ連続してMP3ファイルを再生するアプリに取り組んでいます。 Mediaplayerからの「コンプメント」イベントを聞くことで、現在のMP3プレイがいつ完了するかを知っています。
ただし、メディアが再生されている間に戻るボタンを押して開始ディスプレイに戻ると、明らかにアクティビティがまだ実行されています。 「コンプレーション」イベントがトリガーされると、リストアクティビティ内のビューにアクセスしようとし、ヌルポインターの例外でクラッシュします。
アクティビティがもはや「アクティブ」ではなく、次のオーディオを再生するための呼び出しを防ぐことができると判断する最良の方法は何ですか?
解決
StopまたはOndestroyのアクティビティライフサイクルメソッドのそれらをトリガーしてみてください。小切手 このドキュメント 詳細については。
ユーザーがバックボタンをクリックすると、オンストップがトリガーされます。そのため、イベントをオンストップで処理してください。
public void onStop () {
//do your stuff here
super.onStop()
}
最終的にはondestroyも呼び出されますが、バックボタンがクリックされるとすぐに必ずしもそうではありません。
所属していません StackOverflow