首页 > 代码库 > 谈谈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