Android,退出/暂停应用程序,如何销毁线程

时间:2011-05-11 17:24:19

标签: java android multithreading sockets

我有一个带有后台线程的android应用程序,其中包含一个用于从服务器发送/接收数据的套接字连接。

如果我的应用程序结束(后退按钮等)或暂停(主页按钮,调用其他应用程序),处理此后台线程的最佳方法是什么?

我见过两种方式:

  • 创建后和启动帖子之前调用Thread.setDaemon(true)

  • 覆盖onStop()onPause()onDestroy()

我只想确保我的应用程序不会挂起或有其他奇怪的行为。

编辑:

此外,关闭套接字的最佳解决方案是什么?我也关闭它和inputStream吗?那够了吗?

1 个答案:

答案 0 :(得分:1)

我建议使用某种信号变量:做类似

的事情
public void run(){
while(!stopped){
  // do work
}

// clean up

return;
}

然后在onStop()onDestroy()设置已停止为true。您还需要确保自己在自己后面进行清理,如果需要重新启动该线程,请在onResumeonCreate中进行。{/ p>