16

特定のアクティビティ内から mp3 ファイルを自動的に連続して再生するアプリに取り組んでいます。MediaPlayer からの「onCompletion」イベントをリッスンすることで、現在の mp3 再生がいつ完了したかを認識します。

ただし、メディアの再生中に [戻る] ボタンを押して開始画面に戻ると、アクティビティがまだ実行されているようです。「onCompletion」イベントがトリガーされると、リスト アクティビティ内のビューにアクセスしようとし、null ポインター例外でクラッシュします。

アクティビティが「アクティブ」ではなくなったことを判断し、次のオーディオを再生する呼び出しを防ぐことができる最善の方法は何ですか?

4

2 に答える 2

28

アクティビティライフサイクルメソッドonStopまたはonDestroyでそれらをトリガーしてみてください。詳細については、このドキュメントを確認してください。

ユーザーが戻るボタンをクリックすると、onStopがトリガーされます。したがって、onStopでイベントを処理します。

@Override
public void onStop () {
    // Do your stuff here
    super.onStop() 
}

最終的には、onDestroyも呼び出されますが、必ずしも[戻る]ボタンがクリックされるとすぐに呼び出されるとは限りません。

于 2011-06-11T03:20:17.367 に答える