我有一个带有后台线程的android应用程序,其中包含一个用于从服务器发送/接收数据的套接字连接。
如果我的应用程序结束(后退按钮等)或暂停(主页按钮,调用其他应用程序),处理此后台线程的最佳方法是什么?
我见过两种方式:
创建后和启动帖子之前调用Thread.setDaemon(true)
覆盖onStop()
,onPause()
或onDestroy()
我只想确保我的应用程序不会挂起或有其他奇怪的行为。
编辑:
此外,关闭套接字的最佳解决方案是什么?我也关闭它和inputStream吗?那够了吗?
答案 0 :(得分:1)
我建议使用某种信号变量:做类似
的事情public void run(){
while(!stopped){
// do work
}
// clean up
return;
}
然后在onStop()
或onDestroy()
设置已停止为true。您还需要确保自己在自己后面进行清理,如果需要重新启动该线程,请在onResume
或onCreate
中进行。{/ p>