在android中开启的线程用Thread.stop()来关闭是不会真正关闭的,当我们再次start线程的时候,会产生异常:Thread is already started.

针对这个问题可以在线程的run方法里,加一个判断标志。例如:

class TestThread extends Thread{

public void run(){

while(isTrue){

//做你要做的事。

}

}

}

在需要关闭的时候,将flag置为false: isTrue=false;并且将运行的线程对象挂起然后置为null(假设开启的线程对象为mTestThread) :

mTestThread.interrupt();

mTestThread=null;

再次用到的时候进行如下处理即可:

if(mTestThread==null){

mTestThread=new TestThread();

mTestThread.start();

}

更多相关文章

  1. Android中工作线程与主线程同步方式
  2. Android 多线程2
  3. Android在子线程中更新UI(二)
  4. Android在子线程中更新UI(一)
  5. Android intent 传递数组对象序列化
  6. Android自动化工具Monkeyrunner使用(六) —— 根据ID查找对象
  7. Android Handler线程间通信机制分析
  8. android 多线程下载原理

随机推荐

  1. Android(安卓)TextView属性ellipsize多行
  2. Android必须要掌握的东西
  3. Android(安卓)SDK下载和更新失败的解决方
  4. 用Kotlin写RecyclerView,item使用Relative
  5. Android之判断是否有网封装类
  6. Ubuntu下编译AOSP步骤
  7. android 读 txt
  8. Windows下git下载android source
  9. Android编译系统(Android.mk文件详解-仅
  10. Android初级之路-Android系统架构简介