【问题标题】:How to stop new Thread(new Runnable()) [duplicate]如何停止新线程(new Runnable())[重复]
【发布时间】:2018-03-02 14:11:57
【问题描述】:

我怎样才能停止新的Thread(new Runnable()).run

我是 android 开发的新手 :D,我需要你的帮助 :)

我有这段代码,我想在执行后停止它

      new Thread(new Runnable() {
         @Override public void run() {
             Log.e("MotionLogger", "SU");
             Log.i(TAG, "click " + Thread.currentThread().toString());

             try {
                 finalCommandLine.writeBytes(command.toString() + '\n');
                 finalCommandLine.writeBytes("exit\n");
                 finalCommandLine.flush();
                 finalCommandLine.close();
                 finalSuShell.waitFor();
             } catch (IOException e1) {
                 e1.printStackTrace();
             } catch (InterruptedException e1) {
                 e1.printStackTrace();
             }
         }

     }).start();

提前致谢:)

【问题讨论】:

标签: android


【解决方案1】:

在你的情况下,你可以使用 thread.interrupt

如果你想在 UI 线程上运行,或者像这样创建处理程序

Handler handler= new Handler();

然后像这样创建Runnable

Runnable runnable= new Runnable() {
        public void run() {
            //do your work here
        }
    };
//start like this
runnable.run();
//stop like this
handler.removeCallbacks(runnable);

【讨论】:

  • 我猜应该是 handler.post(runnable)?
  • 这只会在 UI 线程上运行,这不是他要求的。
  • 是的,这将在 UI 线程上运行。
猜你喜欢
  • 2012-02-20
  • 1970-01-01
  • 1970-01-01
  • 2019-06-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-11
  • 2012-03-16
  • 1970-01-01
相关资源
最近更新 更多