android离开一个页面时关闭子线程

当你需要finish一个页面的时候,这个页面有子程序不断的在后台进行运行,finish只能关闭主线程,但是却无法关闭子线程,所以提供以下两种方法,以供参考

方法一:在不断循环运行的子线程中加入一个标示符进行判断,当你需要退出的时候,将标示符置为true即可

方法二:利用android中的handler

//可以用HandlerThread,将它的Looper给handler就可以,具体用法如下: 
HandlerThread handlerThread=new HandlerThread("threadTag"); 
handlerThread.start(); 
Handler handler=new Handler(handlerThread.getLooper()); 
handler.post(test); 
//这样test不会阻塞ui线程,test为Runnable的子类 

在activity的onDestroy()方法中handler.removeCallbacks(test)

 值得注意的是,这样创建得到的handler相当于子线程中的handler,你如果再通过sendMessage发送消息的话,不能去更新UI,否则会报错

你可能感兴趣的:(android)