当你需要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,否则会报错