在操作栏事件的Android杀特定线程(android kill specific thread o

2019-07-03 16:51发布

我想杀死一个特定的线程,但无法弄清楚使其工作的一种方式。 我包括所有的信息旁边,哪怕显得重要不:

我用行动起来吧夏洛特,想杀死一个动作按钮事件的线程。 所以我有:

    Thread myThread;
    myThread = new Thread(new Runnable(){
        public void run(){
                functionX();
        }
      });
    myThread.start();

这个线程是一个长期运行的线程,funcionX()创建一些新的主题为好。 我要杀死线程时:

   public boolean onOptionsItemSelected(MenuItem item){
    switch (item.getItemId()) {

    case android.R.id.home:
        myThread.interrupt();
        break;
    };

我试着ExecutorService的使用提出(可运行),为未来的结果和Future.cancel但似乎并不工作。 我还要提到的是functionX()使用HTTP GET请求从JSON服务中获得的数据。

Answer 1:

有多种方法可以做到这一点,他们夫妇可以像

  1. 相反,线程的使用TimerTask的,并呼吁timeTask.cancel() - 用于中断
  2. 在线程的run()方法,保持检查一个布尔值,以确定线程是否应该被终止,然后就可以调用中断或更好抛出一个异常


Answer 2:

选项2 rock_win是要走的路,你可以看到为什么在这里附带一些代码:

http://docs.oracle.com/javase/1.5.0/docs/guide/misc/threadPrimitiveDeprecation.html



文章来源: android kill specific thread on action bar event