android 如何关闭后台service

Jlins 2009-12-05 11:56:15
我做个后台播放音乐程序
通过 远程绑定到一个后台的音乐service,然后启动service播放音乐
bindService(intent,serviceConnection,Context.BIND_AUTO_CREATE);


播放音乐后,当前的activity是可以控制停止和关闭音乐的,当我点了下 手机上的回到桌面的按钮,然后程序退出 回到了桌面,这个时候后台还是在播放音乐了,但是前台的activity应该是已经关闭了,这个时候我又运行了一遍音乐播放程序,打开的avtivity已经不能对后台正在播放的音乐进行操作了 ,而是又打来了一个新的播放程序!!!

请问高手们 怎么没样让他们始终操作一个后台的service啊~~

我想到达到的效果是 ::

播放音乐后,就可以做别的事情,开别的程序了,当我想操作音乐的时候,打开音乐程序就可以操作目前已经在播放的音乐
...全文
21364 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
eagledame 2012-03-06
  • 打赏
  • 举报
回复
这个service自动重启 是android多媒体服务的一个自动重启机制。即使kill了media进程 它底层框架会自动重新开启meida service的。想要知道原因,自己去研究media框架吧 ,就知道这么多了。
tiantiansinian 2011-09-19
  • 打赏
  • 举报
回复
22楼正解。因为service和你的activity无关联的。即使你的应用程序进程kill掉了,但是service依然存在。是系统自动维护了。所以在解除绑定的时候,关闭service。
zsc58910 2011-09-17
  • 打赏
  • 举报
回复
在解绑service后调用一个selfStop关闭service,不要直接kill掉进程,selfStop应该是异步的。我在music里就遇到这个烂问题,暂时这么解决了。PS:是回答21L的。
yushanpqp 2011-09-13
  • 打赏
  • 举报
回复
楼主,求救
kill了的service会自动启动,知道怎么处理了吗?
非常感谢
可爱的树懒 2011-08-03
  • 打赏
  • 举报
回复
System.exit(0); 可以搞定!
anna_wu 2011-07-15
  • 打赏
  • 举报
回复
和你一样的麻烦啊
傲慢的上校 2011-04-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 nj_dobetter 的回复:]
把你的activity配置成singleInstance,再在放入Notification里面去,按BACK后还可以从Notification点击回来。
[/Quote]顶 设成单例模式。。
JervisShe 2010-12-13
  • 打赏
  • 举报
回复
可以在调用startService(intent)之前先调 stopService(intent),并在Service的onDestroy()里面关闭播放器,不过要做个播放器是否为空的判断,这样你点任何时候播放时都会先stop掉播放器,然后重新播放了,但是有个BUG,如果你调用过release()把MediaPlayer释放掉了,为空判断就不起作用了,这时候在onDestroy()里面就会出错
MrGaoGao 2010-08-17
  • 打赏
  • 举报
回复
LZ,我现在也遇到跟你一样的问题!请问你现在是否解决了啊?!能不能给小弟指点指点!如果可以的话加Q397782562,共勉一下啊!万分感激啊!
Zengyangtech 2010-08-10
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 shilulu1052 的回复:]

我自己做了个任务管理器,我想在这个程序中关闭系统正在运行的一个service,用stopService()试了多次都不行,请问高手们这个该怎样用代码实现?如有人帮我解决,一定重谢
[/Quote]
试试ActivityManager里面的restartPackage函数
shilulu1052 2010-08-10
  • 打赏
  • 举报
回复
我自己做了个任务管理器,我想在这个程序中关闭系统正在运行的一个service,用stopService()试了多次都不行,请问高手们这个该怎样用代码实现?如有人帮我解决,一定重谢
partner4java 2010-04-03
  • 打赏
  • 举报
回复
本来就是自动这样的,你如果kill,就会自动启动,你可以在ddms里面测试一下
Jlins 2009-12-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 nj_dobetter 的回复:]
你显示Toast了?
引用 10 楼 dyllove98 的回复:
...
12-12 07:12:11.868: INFO/NotificationService(581):
enqueueToast pkg=com.jlins.schedule callback=android.app.ITransientNotification$Stub$Proxy@4372ff80 duration=1
...

[/Quote]

恩 是的,现在的问题是 已经被关掉的service比如 音乐播放程序,点back的时候的确是关闭了,音乐贴纸了,但是大约过了几秒后 音乐播放service又自动启动啦!!! 我想不通这是为什么?
nj_dobetter 2009-12-12
  • 打赏
  • 举报
回复
你显示Toast了?
[Quote=引用 10 楼 dyllove98 的回复:]
...
12-12 07:12:11.868: INFO/NotificationService(581):
enqueueToast pkg=com.jlins.schedule callback=android.app.ITransientNotification$Stub$Proxy@4372ff80 duration=1
...
[/Quote]
KingWolfOfSky 2009-12-12
  • 打赏
  • 举报
回复
Android 的生存周期很诡异。。。迷茫ing
Jlins 2009-12-12
  • 打赏
  • 举报
回复
当我使用 activity 的ondestroy()方法中用kill杀掉activity的时候,我使用ddbm做监控
当点击 back的时候,单独的activity被完全销毁,没有了进程,
当销毁一个远程调用sercice的activity的时候,点击back按钮,进程也被杀掉了。但是非常奇怪的问题出来了,那个被杀掉进程又突然自己起来了,我不明白是什么原因?

后台显示的是
12-12 07:12:11.868: INFO/NotificationService(581):
enqueueToast pkg=com.jlins.schedule callback=android.app.ITransientNotification$Stub$Proxy@4372ff80 duration=1

注意:只有在远程调用的时候才出现这个问题

哪位高手知道,我可以加分奖励
誰伴我闖荡 2009-12-09
  • 打赏
  • 举报
回复
关注~~~~
wangpiguang 2009-12-07
  • 打赏
  • 举报
回复
比较复杂,同想知道答案
zxh_wolfe 2009-12-07
  • 打赏
  • 举报
回复
去看看源码多好
  • 打赏
  • 举报
回复
Proxy 设计模式是否可以用一下呢
加载更多回复(4)

80,362

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧