码迷,mamicode.com
首页 > 移动开发 > 详细

关于如何关闭android中service中新开启的线程问题?

时间:2016-07-09 20:49:36      阅读:287      评论:0      收藏:0      [点我收藏+]

标签:

今天遇到一个问题,既在一个activity中设置一个按钮,点击按钮关闭service,而service中又新开启了一个线程,每隔一秒输出一句话,但是当调用按钮实现stopService方法后,service是可以关闭,但是service中开启的线程却一直在运行,原理上来讲从service的onDestory方法中关闭当前线程即可,可即便如此,还是会报错,贴下代码:

1 stopBtn.setOnClickListener(new OnClickListener() {
2             
3             @Override
4             public void onClick(View v) {
5                 stopService(new Intent(MainActivity.this, MyServices.class));
6             }
7         });
    Thread     thread = new Thread(){
        @Override
        public void run() {
            super.run();
            while(true){
                Log.i("main", "hhhhhhhhhhhhhhhh");
                try {
                    sleep(1000);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    };

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        
    
        thread.start();
        return super.onStartCommand(intent, flags, startId);
    }
    
    @Override
    public void onDestroy() {
        super.onDestroy();
        thread.stop();
    }

显示

 thread.stop();这一行出错,不管是用stop还是destory都会报错。

关于如何关闭android中service中新开启的线程问题?

标签:

原文地址:http://www.cnblogs.com/-xiaochao/p/5656456.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!