原因:因为你用了Bound Service 和 Start Service两种方法启动了Service。
如果只是Bound Service是没有问题的,因为绑定它的Activity销毁时,Service也就销毁了。
但是,当你用Start Service时,启动它的Activity销毁时,Service是不会跟着一起销毁的,而是一直在后台运行着。
所以现在的问题就是,你在Start Service中用到了已经被destroy的Activity中的东西,所以。
ps:以上是个人理解而已。建议加强Activity中Service的管理,如当Activity销毁时,也要显示调用stopService()终止Service。
或者是Service本身调用stopSelf()终止自身。
如果只是Bound Service是没有问题的,因为绑定它的Activity销毁时,Service也就销毁了。
但是,当你用Start Service时,启动它的Activity销毁时,Service是不会跟着一起销毁的,而是一直在后台运行着。
所以现在的问题就是,你在Start Service中用到了已经被destroy的Activity中的东西,所以。
ps:以上是个人理解而已。建议加强Activity中Service的管理,如当Activity销毁时,也要显示调用stopService()终止Service。
或者是Service本身调用stopSelf()终止自身。
解决方案 »
- Flex 移动手机开发如何弹出提示框
- 新浪微博 直接调用数据接口 不使用自带的SDK
- 按官网方法下载下来的android源码包怎么添加Ethernet?
- 怎么提高android canvas绘图的速度?
- 设置全屏必须在setContentView之前才有效的问题?
- 如何卸载删除方式
- android 在模拟器上能采集到声音么?
- 新建一个工程,res\layout\ 下没有XML布局文件,求解答
- viewpager 滑至最后一屏禁止向右滑,滑至第一屏禁止向左滑,怎么实现
- 遇到android jni 编程上的问题 (附截图) 请各位大哥过来看看帮忙解决
- 问个问题,menu菜单里的item如何动态加载
- binder内核缓冲区管理
问题出在后台的服务我也是可以确定的,是在后台服务中运行的过程中重新启动程序,程序就重新绑定服务,可能是这个时候的activity没有更新,依旧沿用了后台服务之前的activity,但我不知道从那里下手,
在你Activity的onDestroy方法调用下面方法可以解决你的问题,虽然不是很完美的解决
// 关闭进程
android.os.Process.killProcess(android.os.Process.myPid());//获取PID
System.exit(0);如果你找到答案 请告诉我
如果服务想保持后台,那么用Start Service就可以了,为什么还要用bind
如果服务想保持后台,那么用Start Service就可以了,为什么还要用bind
项目里需要用到库的对象,和方法,库是一些即时通讯的东西