16

我正在开发一个在给定活动中自动并连续播放 mp3 文件的应用程序。它通过侦听来自 MediaPlayer 的“onCompletion”事件来知道当前 mp3 播放何时完成。

但是,如果我在播放媒体时按后退按钮返回开始显示,显然活动仍在运行。当触发“onCompletion”事件时,它会尝试访问列表活动中的视图并在空指针异常时崩溃。

确定活动不再“活动”并因此能够阻止呼叫播放下一个音频的最佳方法是什么?

4

2 回答 2

28

尝试在 Activity 生命周期方法 onStop 或 onDestroy 中触发它们。查看此文档以获取更多详细信息。

onStop 将在用户单击后退按钮时触发。所以在 onStop 中处理你的事件。

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

最终,onDestroy 也将被调用,但不一定在单击后退按钮时立即调用。

于 2011-06-11T03:20:17.367 回答
1

如果您使用的是Kotlin ,请使用此

override fun onStop () {
    super.onStop()
    //do stuff
}

是有关该主题的更多信息

于 2020-04-18T05:21:49.630 回答