基本步骤:
第一步:创建Service,定义类继承Service;
第二步:AndroidManifest.xml中定义<service>;
第三步:开启Service,在其他组件中调用startService方法
第二步:AndroidManifest.xml中定义<service>;
第三步:开启Service,在其他组件中调用startService方法
startService(intent);(在activity中可以直接调用),会执行onstartCommand(生命周期方法),如果发现service还没有,就会先创建执行oncreate。
onCreate只会执行一次,服务一旦被创建出来,就不会再执行onCreate方法,以后再去开启服务只会执行onStartCommand。
第四步:停止Service,调用stopService方法,会执行onDestory()(生命周期方法)。
例子:
第一步:创建服务,重写onCreate、onStartCommaand、onDestroy三个事件
public class MyService extends Service {
public static final String TAG = "MyService";
@Override
public void onCreate() {
super.onCreate();
Log.d(TAG, "onCreate() executed");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d(TAG, "onStartCommand() executed");
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
Log.d(TAG, "onDestroy() executed");
super.onDestroy();
}
@Override
public IBinder onBind(Intent arg0) {
return null;
}
}
第二步:将Service加入xml文件
<service android:name="com.example.mygps.MyService">
</service>
第三步:启动服务
private void startServiceClickListener() {
btnstart.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this, MyService.class);
startService(intent);
}
});
}
单击开启服务,第一次显示OnCreate、onStartCommand执行,以后,只显示onStartCommand执行。
第四步:关闭服务
private void stopServiceClickListener() {
btnstop.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this, MyService.class);
stopService(intent);
}
});
}
单击结束服务,显示onDestroy执行。
框架测试完毕,可以写自己的服务了。