首页 > 代码库 > 谈谈Android的Service
谈谈Android的Service
Service是Android系统中的四大组件之一,它与Activity不同,它是不能与用户交互的。它是一种长生命周期的,没有可视化界面,运行于后台的一种服务程序。
1.Android中的服务没有用户操作界面,它运行于系统中不容易被用户发觉,可以使用它开发如监控之类的程序。服务的开发比较简单,如下:
第一步:继承Service类
public class MyService extends Service { }
第二步:在AndroidManifest.xml文件中的<application>节点里对服务进行配置:
<service android:name=".MyService" />
服务不能自己运行,需要通过调用Context.startService()或Context.bindService()方法启动服务。这两个方法都可以启动Service
2.Service与Activity一样,也有一个从启动到销毁的过程,但Service的这个过程比Activity简单得多。Service启动到销毁的过程只会经历如下3个阶段:
创建服务 public void onCreate();
开始服务 public void onStart(Intent intent, int startId);
销毁服务 public void onDestroy();
1 MyService.java 2 3 4 package com.example.service; 5 6 import android.app.Service; 7 import android.content.Intent; 8 import android.os.IBinder; 9 10 public class MyService extends Service { 11 12 @Override 13 public IBinder onBind(Intent intent) { 14 // TODO Auto-generated method stub 15 return null; 16 17 } 18 19 @Override 20 public void onCreate() { 21 // TODO Auto-generated method stub 22 System.out.println("###onCreate###"); 23 } 24 25 @Override 26 public void onDestroy() { 27 // TODO Auto-generated method stub 28 System.out.println("###onDestroy###"); 29 } 30 31 @Override 32 public int onStartCommand(Intent intent, int flags, int startId) { 33 // TODO Auto-generated method stub 34 System.out.println("###onStartCommand###"); 35 return Service.START_CONTINUATION_MASK; //继续执行 36 } 37 38 }
MainActivity.java package com.example.service; import android.os.Bundle; import android.app.Activity; import android.content.DialogInterface; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity { private Button start=null; private Button stop=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); start=(Button)findViewById(R.id.start); stop=(Button)findViewById(R.id.stop); this.start.setOnClickListener(new StartOnClickListenerImpl()); this.stop.setOnClickListener(new StartOnClickListenerImpl()); } private class StartOnClickListenerImpl implements OnClickListener{ @Override public void onClick(View v) { // TODO Auto-generated method stub MainActivity.this.startService(new Intent(MainActivity.this,MyService.class)); } private class StoptOnClickListenerImpl implements OnClickListener{ @Override public void onClick(View v) { // TODO Auto-generated method stub MainActivity.this.startService(new Intent(MainActivity.this,MyService.class)); } } } }
注意不要忘了AndroidManifest.xml