Android:按Back键停止以下活动

Android:按Back键停止以下活动,android,background,Android,Background,首先,我想为我糟糕的英语道歉 我的问题是: 下面的计时器每3秒钟显示一次消息,但当我从程序中出来时(使用后退按钮),消息仍然会弹出 public Runnable mUpdateTimeTask = new Runnable(){ @Override public void run() { // TODO Auto-generated method stub while (true) {

首先,我想为我糟糕的英语道歉

我的问题是:

下面的计时器每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)仍然无法阻止它


提前感谢。

此调用是从可运行线程类发出的,当按下“后退”按钮时,该类仍处于活动状态。它将弹出消息,直到应用程序销毁。 相反,请使用以下命令:

    handler.removeCallbacksAndMessages(null);
在removeCallbacksAndMessages的文档中,它说。以下是链接:


“删除obj为token的回调和已发送消息的所有挂起帖子。如果token为null,则将删除所有回调和消息。”

我最近遇到了相同的问题,在搜索了很多次后,我找到了解决方案

将仅停止挂起的消息(可运行)。对于当前正在运行的runnable,它将不起作用。您必须编写自己的类来停止当前正在运行的runnable

handler.removeCallbacksAndMessages(null);