android启动和停止service

上一篇 / 下一篇  2014-03-06 13:30:26 / 个人分类:android

写一个service的类,继承android.app.Service
public class MonitorService extends Service {
private volatile HandlerThread handerThread = null;
private volatile Handler hanlder = null;
private Runnable runnable;
BatteryInfo batteryInfo;


private BroadcastReceiver batteryReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
int level = intent.getIntExtra("level", 0); // level加%就是当前电量了
batteryNow = String.valueOf(level);
unregisterReceiver(this);
}
};


@Override
public void onCreate() {
super.onCreate();
handerThread = new HandlerThread("se-service");
handerThread.start();
hanlder = new Handler(handerThread.getLooper(), new Callback() {
@Override
public boolean handleMessage(android.os.Message msg) {
return true;
}
});
batteryInfo = new BatteryInfo(this);
}

@SuppressWarnings("deprecation")
@Override
public void onStart(Intent intent, int startId) {
// do something
}

@Override
public void onDestroy() {
super.onDestroy();
hanlder.removeCallbacks(runnable);
handerThread.getLooper().quit();

}

AndroidManifest.xml中声明这个service:

<service  android:name="com.taobao.agoosdkmonitor.MonitorService" ></service>


Activity中启动service:

intent=newIntent(mContext, MonitorService.class);

startService(intent);

Activity中停止service:

stopService(intent);


注意:

因为在service里起了handler线程来执行任务,因此在onDestroy方法里需要停止这个handler,否则即使stopservice,线程仍然会继续执行



TAG: Android 线程 service android stopservice

 

评分:0

我来说两句

Open Toolbar