不允许一个Android应用程序的一个活动有多个实例



我正在尝试为Android创建一个非常简单的应用程序,它可以播放音乐文件(我真的才刚刚开始进入Android)。我只有一个"活动"在应用程序启动时启动,它开始播放音乐文件。我需要的是,无论你按下"上一步"还是"主页"按钮,活动都会一直运行(播放音乐),除非你从"设置"菜单中明确告诉它关闭,如果你再次尝试运行,它应该会将该活动恢复到最前面(基本上,其他播放器都是如何工作的)。然而,对我来说,当我按下返回菜单屏幕,然后再次点击应用程序时,它会运行另一个活动实例(我可以判断,因为音乐翻倍)。我能做些什么来防止这种情况发生?非常感谢。

对于在后台播放音乐,我建议您使用服务。

在清单文件中指定android:launchMode= "singleInstance"。这意味着您的活动就是您的整个应用程序。

别忘了保存你的音乐时间状态。使用SharedPreferences保存声音播放结束时的秒数整数,只需恢复onResume()方法中的状态即可。

不幸的是,您无法在按下"后退"按钮后播放音乐,因为活动已被破坏。如果你想按照另一个答案的建议来做,你必须启动一项服务。原因是您需要一个Context对象来播放音乐,并且在调用onDestroy()方法后它将不再可用。

http://developer.android.com/guide/topics/media/mediaplayer.html在这里,您可以找到在服务中播放媒体文件的示例。

相关内容

最新更新