Android线程中执行“getevent”命令时的线程退出(结束)问题

7 篇文章 0 订阅
1 篇文章 0 订阅

       项目中遇到需要执行shell命令“getevent”获取坐标参数的需求,但是发现无法结束运行该命令的线程,后来终于发现解决方法。在此记录下。

       我在线程中通过ProcessBuilder(或者Runtime.getRuntime().exec())执行命令“getevent -qlt”(需要root权限)。用过这个命令的同志都知道getevent是一个不断读取事件的命令,可以通过cmd命令行运行该命令(先进入shell:adb shell)。在我的需求中,线程执行getevent后,需要不断的读取该命令返回的数据,所以需要调用process的getInputStream(循环读取)。

       当我们想结束线程的时候,仅仅调用thread的interrupt()方法,并不起作用,线程仍在执行(至少我的程序是这样的)。

      原因是ProcessBuilder启动的Process没有结束。

      解决方法:线程外调用Process的destroy()方法,终止掉我们的process。如有必要,再interrupt()一下。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值