Android:返回按键以停止以下活动

时间:2013-07-31 17:27:30

标签: android background

一开始,我想为我糟糕的英语道歉。

有我的问题:

在计时器下方每隔3秒显示一条消息,但是当我从程序中退出时(使用后退按钮),消息仍会弹出。

 public Runnable mUpdateTimeTask = new Runnable(){        
        @Override
        public void run() {
            // TODO Auto-generated method stub
            while (true) {
                try {
                    Thread.sleep(3000);}
                 catch (Exception e) {
                    // TODO: handle exception
                }
            mHandler.post(new Runnable(){
        @Override
         public void run() {
                            Toast.makeText(getApplicationContext(), "Testing 3 Seconds", Toast.LENGTH_LONG).show();
                  }
              });
            }
        }

};

我已经使用mHandler.removeCallbacks(mUpdateTimeTask);仍然无法阻止它。

提前致谢。

2 个答案:

答案 0 :(得分:0)

调用是从可运行的线程类进行的,当按下“返回”按钮时,该类仍处于活动状态。它将弹出消息,直到应用程序销毁。 相反,使用这个:

    handler.removeCallbacksAndMessages(null);

在removeCallbacksAndMessages的文档中说。链接在这里: developer website documentation link

“删除任何待处理的回调帖子并发送其obj为令牌的邮件。如果令牌为空,则将删除所有回调和邮件。”

答案 1 :(得分:0)

我最近遇到了同样的问题,经过大量搜索后,我找到了解决方案here

handler.removeCallbacksAndMessages(null);

只会停止待处理的消息(Runnables)。它不适用于当前运行的runnable。您必须编写自己的类来停止当前运行的runnable。