Android 让一个线程控制另一个线程

来源:互联网 发布:法尔纳赛 知乎 编辑:程序博客网 时间:2024/04/29 15:49
设:让线程A,监视线程mSender第一步:在A中定义一个变量:ExecutorService transThread = Executors.newSingleThreadExecutor();解释:transThread 官方名称是“单一线程池变量”,他是做什么的呢,它就像我们给A的一块赛车场,用来玩遥控赛车。第二步: 在A中再定义一个变量: Future transPending;解释:transPending就像我给A一个用来控制遥控赛车的遥控器一样第三步:在A中定义个线程mSender对象:private final Runnable mSender = new Runnable() {public void run() {}};解释:这是你写的对象,他就相当于我给A的一个遥控赛车。第四步:在A中添加如下语句:transPending = transThread.submit(mSender);解释:这一步就相当于把赛车(mSender)放入场地(第一步中我们定义的transThread),并且用遥控器“transPending”来控制他。(注:这里你是否会有疑惑,我没有写"mSender.start()"之类的语句怎么让我的赛车跑起来啊(运行run()方法),放心,有了“transPending = transThread.submit(mSender);”这一步,赛车是自动跑起来的,也就是mSender会自动调用run的。)第五步:现在你可以用遥控器“transPending”干很多事情了transPending.cancel(true);无论线程现在是否运行中,立刻终止。transPending.cancel(false);当前线程若没有运行(比如挂起状态)就终止它。transPending所做的不止这些。
0 0