Android - 如何停止runnable和handler方法

时间:2017-09-09 13:45:51

标签: java android

在我的应用程序中,我会在一段时间间隔内继续更新一些信息。所以我这样做了

     handler = new Handler();
     and then some Task
     handler.postDelayed(runLocation, 1000);                                                

    public Runnable runLocation = new Runnable(){
    @Override
    public void run() {
    MainActivity.this.handler.postDelayed(MainActivity.this.runLocation, 100);

};

我的问题是我想在某个时间点阻止这种运行。如何做到这一点? 你能帮助我吗?

2 个答案:

答案 0 :(得分:0)

您可以使用removeCallbacks。只需致电

  handler.removeCallbacks(runLocation);

它将删除邮件队列中的所有待处理项。

答案 1 :(得分:0)

使用removeCallbacks

@Override
public void run() {
  if(isStopHandler){
   MainActivity.this.handler.removeCallbacks(this);
   return;
  }
  // do your runnable work
  // set isStopHandler = true when needed so next time this method is executed, it will get inside if cond.
};