Service生命周期
启动服务的时候调用onCreate()和onStartCommand,onCreate()方法只执行一次。若多次启动服务则只执行onStartCommand方法。停止服务则只是执行onDestroy()方法
onStartCommand可以携带数据
public class MyService extends Service {
private final String TAG="MyService";
@Override
public void onCreate() {
Log.i(TAG, "<<<onCreate");
super.onCreate();
}
//获得资源
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i(TAG, "<<<onStartCommand"+intent.getStringExtra("service"));
return super.onStartCommand(intent, flags, startId);
}
@Override
public IBinder onBind(Intent arg0) {
Log.i(TAG, "<<<onBind");
return null;
}
//释放资源
@Override
public void onDestroy() {
Log.i(TAG, "<<<onDestroy");
super.onDestroy();
}
}
public class MainActivity extends Activity implements OnClickListener{
private Button btnStart=null;
private Button btnStop=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnStart=(Button)this.findViewById(R.id.button1);
btnStop=(Button)this.findViewById(R.id.button2);
btnStart.setOnClickListener(this);
btnStop.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onClick(View v) {
switch(v.getId())
{
//启动服务
case R.id.button1:
Intent intent=new Intent(MainActivity.this,MyService.class);
intent.putExtra("service","服务器");
startService(intent);
break;
//关闭服务
case R.id.button2:
Intent intent1=new Intent(MainActivity.this,MyService.class);
stopService(intent1);
}
}
}