2011-06-11 88 views
12

我正在开发一个应用程序,可以在给定的活动中自动连续播放mp3文件。它通过从MediaPlayer侦听“onCompletion”事件知道当前的mp3播放是否完成。Android:如何知道活动是否完成?

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

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

回答

18

尝试在Activity生命周期方法onStop或onDestroy中触发这些方法。查询this documentation了解更多详情。

当用户点击后退按钮时,会触发onStop。因此,请在onStop中处理您的事件。

public void onStop() { 
//do your stuff here 
super.onStop() 
} 

最终onDestroy也会被调用,但不一定一旦后退按钮被点击。

+0

谢谢。我只是在onStop方法中设置一个标志,并在侦听器中检查它。它像一个魅力。 – 2011-06-11 04:29:17

+1

当一些新的活动出现在这个活动之前时,onStop()也会被触发。如果你想听回按钮,请尝试onBackPressed()事件。 – 2017-06-06 12:43:45

相关问题