上次学习了Android四大组件Activity之后,我们深刻理解了Activity。这次我们学习四大组件Service。
Service与Activity的级别是一样的,都是Android系统不可缺少的,也是很重要的。可是还是有差别的。Activity是与用户交互的重要组件。所以能够说明Activity是有界面的,存在于前台。而Service确实没有 界面的,一直存在与后台。默默无闻的奉献者。
和学习Activity一样。本节学习怎样创建一个Service,以及怎样配置Service
第一步创建一个MyService而且继承Service类,(是不是和我们的activity非常相似)
创建后例如以下图所看到的:
创建后的服务也须要到配置文件里配置,这是不是和Activity也非常相似
<service android:name="com.ui.service.MyService"></service>
这样一个Service算是创建成功了,那怎样去启动一个Service呢? 由于Service是没有界面的,是执行在后台的。我们能够用打印观察。启动service须要借助与Activity
我们创建一个MyActivity
public class MyActivity extends Activity { private Button btn_start; @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_myservice); btn_start = (Button)findViewById(R.id.button1);
btn_start.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent = new Intent(MyActivity.this, MyService.class);
startService(intent);
}
});
}
}
布局文件就一个Button用来启动Service
同一时候我为MyService中加入了几个方法:
public class MyService extends Service { @Override//必须实现的方法
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
} @Override//被创建时的调用
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
Log.i("MyService", "onCreate------------");
} @Override
@Deprecated//OnStart方法如今被OnStartCommd已经代替,事实上在OnStartCommand也调用了OnStart
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
super.onStart(intent, startId);
Log.i("MyService", "onStart------------");
} @Override//启动时会调用
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
Log.i("MyService", "onStartCommand------------");
return super.onStartCommand(intent, flags, startId);
}
}
当我点击Buttonbutton是,就会启动Service
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
ok, 关于Service的创建本节就说道这里