android 项目困惑

姬鑫 发布于 2015/02/27 13:50
阅读 523
收藏 0

@红薯 你好,想跟你请教个问题:项目是基于TCP协议的,目前完成了初步版本,功能已经实现,应用核心问题:登录成功后,和服务器建立长连接。有两个线程一直开着,伴随着应用的整个生命周期,一个是负责一直读数据线程,一个是发送心跳线程,当注销登录或者退出应用时,关闭线程。现在遇到的困惑是这样子的,线程被系统杀死或者被第三方应用杀死后就没有办法继续处理了。(我发现,被杀死后即使是Application类中的变量都会恢复到初始化的值,没有初始化的都为空了) 如何解决被杀死的问题?还望红薯指导下,该如何去做避免线程被杀死的问题。

加载中
0
叶大侠
叶大侠
试一下Service?
0
iuKa
iuKa

在被系统杀掉之前系统会调用onSaveInstance方法保证你有机会保存当前状态值,并在未来调用onRestoreInstance恢复状态

如果是被第三方应用干掉就的想想怎么防被杀了,这个具体请Google,网上已经有很多讨论了

姬鑫
姬鑫
谢谢~
0
开源实验室
开源实验室
把心跳线程换成AlarmManager,或者直接看http://my.oschina.net/kymjs/blog/367325
姬鑫
姬鑫
谢谢指导~
0
Carlyle_Lee
Carlyle_Lee
程序终止有几种情况,自己结束,意外停止,和被终止。有的情况下可在代码中监测到,例如某些普通异常或自动停止。这样,你可以在此时写出数据,重启恢复。 到于不可监测的,你可能只能定期写出(有必要的话),但一定会丢失数据。 程序自动拉起可使用服务。
姬鑫
姬鑫
谢谢提示~
0
黑狗
黑狗

有办法自动重启被杀掉的进程。。。你查查

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部