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

今天遇到一个问题,既在一个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都会报错。
时间: 2024-10-17 17:08:58

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

[Android Pro] service中显示一个dialog 或者通过windowmanage显示view

转载: http://blog.csdn.net/huxueyan521/article/details/8954844 通过windowmananger来在窗口上添加view的时候,需要设置alert参数,而且要添加alert权限 mLayoutParams = new WindowManager.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, LayoutParams.TYPE_SYSTEM_ALERT,

android在service中使用AsyncHttpClient加载网络资源

package com.example.service; import org.apache.http.Header; import org.json.JSONObject; import com.loopj.android.http.AsyncHttpClient; import com.loopj.android.http.JsonHttpResponseHandler; import com.loopj.android.http.RequestParams; import android.

Android学习Service中遇到的问题

今天学习service,然后遇到了一个force close,log中存在这个一句话: 05-23 14:13:26.408: E/AndroidRuntime(17616): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.exr.service/com.exr.service.Service1}; have you declared this activity in

Android中Service的详细解释与使用

Android中Service的详细解释与使用: 概念: (1).Service可以说是一个在后台运行的Activity.它不是一个单独的进程,它只需要应用告诉它要在后台做什么就可以了. (2).它要是实现和用户的交互的话需要通过通知栏或者是通过发送广播,UI去接收显示. (3).它的应用十分广泛,尤其是在框架层,应用更多的是对系统服务的调用. 作用: (1).它用于处理一些不干扰用户使用的后台操作.如下载,网络获取.播放音乐,他可以通过INTENT来开启,同时也可以绑定到宿主对象(调用者例如A

Android中service用法

Service翻译: Class Overview A Service is an application component representing either an application's desire to perform a longer-running operation while not interacting with the user or to supply functionality for other applications to use. Each servi

(六)Android中Service通信

一.启动Service并传递参数 传递参数时只需在startService启动的Intent中传入数据便可,接收参数时可在onStartCommand函数中通过读取第一个参数Intent的内容来实现 1.MainActivity.java package com.example.shiyanshi.serviceconnected; import android.app.Activity;import android.content.Intent;import android.os.Bundle

关于android编程中service和activity的区别

一. 绝大部分情况下,Service的作用是用来"执行"后台的.耗时的.重要的任务,三者缺一不可,而最重要的原因是第三点:要执行重要的任务. 因为当一个进程启动了Service后,进程的优先级变高了,系统除非在非常极端的情况下,不会杀掉该进程,反观Activity,不具备这样的特性. 如果没有满足上面所说的三点,请谨慎使用Service,千万别把使用Service的理由变成:这样可以常驻后台.从资源使用的角度来看,这是非常不可取的. 二. 1.Activity和Service的生命周期

Android中Service生命周期

这几天面试的时候,反复被问到一个关于Service的问题. 之前做了一个APP.有一个应用场景是,需要开机启动一个Service,在Service中另开一个线程,去对比用户配置中的时间,作出及时提醒. 然后面试的时候在描述该做法时就被问到一个问题,如果Service被系统或者其他应用kill了怎么办?我当时的回答是,在onDestroy中去处理.面试官说,onDestroy并不会被调用. 面试的详情暂且不表,在后期会专门写面经.现在讨论这个问题,Service被kill后生命周期是怎样的. OK

android中Service使用详解

service用于长期在后台处理任务,而不需要对用户可见. service有2种基本的启动方式: startService():使用这种方式,来进行单一的任务,不需要返回结果给调用者 bindService():与上面的相反. 下面是一些关于服务的重要说明,非常值得详细了解的: 继承service,实现自己的service: 在manifest中声明service,服务位于主线程,并不会创建自己的子线程. 下面是一些重写的方法: onCreate();当服务被创建时调用,只调用一次. onSta