Android,退出/暂停应用程序,如何销毁线程
我有一个带有后台线程的 Android 应用程序,其中包含用于从服务器发送/接收数据的套接字连接。
如果我的应用程序结束(后退按钮等)或暂停(主页按钮,调用其他应用程序),处理此后台线程的最佳方法是什么?
我看到了两种方法:
在创建之后和启动线程之前调用
Thread.setDaemon(true)
覆盖
onStop()
、onPause()
或onDestroy()
我只是想确保我的应用程序不会挂起或出现其他奇怪的行为。
编辑:
另外,关闭套接字的最佳解决方案是什么?我是否也关闭它和 inputStream?够了吗?
I have an android application with a background thread that contains a socket connection for sending/receiving data from a server.
If my application ends (back button, etc) or is paused (Home button, calling other app), what is the best way of dealing with this background thread?
I have seen 2 ways:
Call
Thread.setDaemon(true)
after creation and before starting the threadOverride
onStop()
,onPause()
, oronDestroy()
I just want to ensure that my application doesn't hang or have other strange behavior.
edit:
Also, what's the best solution to close the socket? Do I close it and the inputStream as well? Is that enough?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我建议使用某种信号变量:执行类似的操作
,然后在
onStop()
或onDestroy()
将 stop 设置为 true。您还需要确保自己清理干净,如果需要重新启动线程,请在onResume
或onCreate
中执行此操作。I'd suggest using a signal variable of some sort: doing something like
And then in
onStop()
oronDestroy()
set stopped to true. You'll need to make sure you clean up behind yourself as well, and if you need to re-start the thread you do so inonResume
oronCreate
.