在Android

时间:2016-01-24 10:53:10

标签: java android multithreading

我有一名工作人员ThreadHandler相关联。 Handler收到Message并在工作人员Thread中执行某些操作。我想“停止”我Thread的{​​{1}}中的onPause()。在我Activity的{​​{1}}方法中,我向我的onPause()发送了退出邮件,以便我的工作人员Activity突破Handler并从Thread返回{1}}。

  1. 这是停止Looper.loop()的正确方法吗?如果没有,应该怎么做?
  2. 我见过主run()调用Thread的代码示例,其中t1是其工作人员t1.join()
    • Thread的目的是什么?
    • 我的示例中是否需要Thread
  3. 我的工作人员join()

    join()

1 个答案:

答案 0 :(得分:0)

我没有在android上工作,但在java中,一个线程可以通过以下方式停止 -

  1. 使用volatile布尔标志 - 在循环中使用此标志(while(flag))。哪个一直运行直到旗帜为真。如果要将线程集标志停止为false。

  2. 检查中断标志 - 线程类中的静态布尔方法为Thread.interrupted(),它检查中断标志。您可以通过调用Thread.interrupt()来中断等待的线程。

  3. Join()方法 - Join方法使当前线程等待线程死亡。当你有一些逻辑只在一个线程完成执行后执行时,就会使用它。所以你不能使用join来停止一个线程但是让一个线程等待另一个线程完成。

    希望它有所帮助。感谢