中断线程

贾瓦德·特克(Jawad Turk)

我正在编写一个使用语音命令移动玩具车的程序,我正在使用线程同时发送数据,问题是当我使用命令退出功能时,我无法中断我的线程,请提供任何帮助。

if(response.equals("stop"))
   {
         motorLeft = 0;
         motorRight =0;
         (new Thread(new Runnable()
           {@Override
               public  void run()
               {
                   while (!Thread.interrupted())
                       try
                       {
                           Thread.sleep(1000);
                           runOnUiThread(new Runnable() // start actions in UI thread
                           {

                               @Override
                               public void run()
                               {
                                  // displayData(); // this action have to be in UI thread
                                 if(BT_is_connect) bl.sendData(String.valueOf( commandLeft+motorLeft+"\r"+commandRight+motorRight+"\r"));

                               }
                           });
                       }
                       catch (InterruptedException e)
                       {
                           // ooops
                       }
               }
           })).start(); // the while thread will start in BG thread
      }
      else

      {
         if(response.equals("exit"))   
            Thread.interrupted();


         }
阿琳达

例如使用变量

volatile  boolean interrupted = false;

然后使用该变量停止

 while (!interrupted)
 {
         try
         {
            Thread.sleep(1000);
            runOnUiThread(new Runnable() // start actions in UI thread
            {
                @Override
                public void run()
                {
                    // displayData(); // this action have to be in UI thread
                    if(BT_is_connect) bl.sendData(String.valueOf(commandLeft+motorLeft+"\r"+commandRight+motorRight+"\r"));

                }
            });
        }
         catch (InterruptedException e)
        {
             // ooops
        }       
 }

因此,当您想中断线程时,只需将被中断的变量更改为true

interrupted = true;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从自己中断线程

来自分类Dev

线程interrupt()不中断线程

来自分类Dev

中断线程Java的更好方法

来自分类Dev

音乐播放时的中断线程

来自分类Dev

中断线程Java的更好方法

来自分类Dev

我到底该如何中断线程?

来自分类Dev

C ++中断线程等待用户输入

来自分类Dev

线程:如何从该线程外部中断线程

来自分类Dev

为什么在ExecutorService中不能中断线程?

来自分类Dev

Java的executionService.shutdownNow()不会取消或中断线程

来自分类Dev

RxJava:如何在退订时中断线程?

来自分类Dev

Spring Batch-作业停止时中断线程

来自分类Dev

SnakeGame:如何处理中断线程和死锁

来自分类Dev

中断线程1:EXC_BAD_ACCESS

来自分类Dev

在注销jdbc驱动程序后停止/中断线程

来自分类Dev

如何通过按钮侦听器中断线程

来自分类Dev

单线程中断睡眠

来自分类Dev

如果实际上正在计算,则无法中断线程?

来自分类Dev

中断线程以等待用户输入,然后退出应用程序

来自分类Dev

如何在不关闭套接字IO操作的情况下中断线程

来自分类Dev

JMeter 中的完成/中断线程(有条件地)

来自分类Dev

java中中断的方法,在while循环中使用时会不会中断线程?

来自分类Dev

引导程序div中断线

来自分类Dev

如何实时绘制中断线

来自分类Dev

为什么此代码被认为是保守的,当操作系统中断线程时会发生什么?

来自分类Dev

等待时中断pselect-多线程

来自分类Dev

使用ICETOOL的DISPLAY设置中断线格式

来自分类Dev

垂直中断线内联列表

来自分类Dev

线程与中断