您的位置:首页 > 其它

在应用程序运行时,按HOME键返回到手机桌面,背景音乐怎样自动关闭

2012-12-14 14:34 302 查看
在公司做一个项目时,要添加背景音乐。项目当中有多个Activity。将背景音乐放在一个Service当中。但问题是:当在不是应用程序的首个Activity按下HOME键退出后,音乐依然播放,Service没有调用到StopService()方法。其实平常许多网络上的APK也同样有这样的问题。

所以查了相关资料有个方法比较有用:可以设置个全局变量

static boolean isBehind = false;

然后在每个Activity中做如下的处理:

在onResume方法中

将这个变量设置成false;

在onPause方法中

将这个变量设置成true;

在onStop方法中进行判断,

if(isBehind != false)

stopService;

当你跳转到另一个activity的时候,

具体的activity生命周期如图:





先执行第一个activity的onPause

此时isBehind = true;

然后执行第二个activity的onResume

此时此时isBehind = false;

当第二个activity is running的时候

第一个activity才会onStop

此时不会停止服务

当按home键的时候,就是直接onPause onStop,然后停止服务。



另一个问题:当我再次进入应用程序中时,发现背景音乐不再播放了。如果你希望此次背景音乐能继续播放,可以如下处理:

在每个Activitiy中 的onResume方法中 添加

if(!AudioService.isPlay){

startService(new Intent(this, AudioService.class));

}

isPlay为服务类Service中我自己定义的一个公共静态变量,在Service中的onStart方法中 为true 在onDestroy中为false
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐