我正在努力使用Android应用来处理新的事情。我在我的应用程序中创建了一个线程,持久消息订阅者,在后台等待来自服务器的消息。当我退出我的应用程序时,该线程仍在运行。实际上,当线程无法连接到服务器时,它会反复尝试连接。所以我想检查我的应用程序是关闭还是活着,否则我想让我的应用程序发送一些消息给线程在它停止之前停止。
在Android中有哪些方法可以做到这一点?请让我听听你的知识。提前谢谢。
答案 0 :(得分:2)
onResume()
开始你的主题,并在onPause()
上停止。
在你的线程的runnable中,你有一个像
这样的循环@Override
public void run() {
while (mRunning) {
// re-try server
}
}
你的活动中的覆盖onResume()之类的,
@Override
protected void onResume() {
super.onResume();
mRunner = new Runnable { .... );
new Thread(mRunner).start();
}
覆盖onPause()以停止线程,
@Override
protected void onPause() {
super.onPause();
if (mRunner != null) {
mRunner.setRunning(false);
mRunner = null;
}
}
这当然会停止循环,run()
退出,线程完成。
一般情况下,对于您注册的任何类型的侦听器或您启动的线程,您都遵循此模式。在onResume()
上设置,然后在onPause()
中删除。
答案 1 :(得分:0)
你无法销毁...只有android会在需要时停止线程..你无法停止或销毁它...而是尝试这样.. 在线程中设置一些标志..以检查它应该何时运行以及何时应该停止..像这样......
void run()
{
while(bool){
//My code
}
}
现在在你的活动中 将bool值更改为false ..
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
bool=false
}