首先要继承于Serivce,实现其生命周期中的方法,然后还需要在AndroidMainfest.xml中<service>声明才能使用
可以调用startService来启动一个服务,或者使用bindService来绑定一个已经存在的服务,还可以通过RPC(远程进程调用)机制来实现不同进程之间Service的调用。
生命周期 :onBind,是一个必须实现的方法,返回一个绑定接口给service
onCreate:当Service第一次被创建时,由系统调用。
onStart(),当通过startService()方法启动serivce时,该方法调用
onDestory当Serivce不再使用时,系统调用该方法
要使用一个Service需要在AndroidMainfest.xml文件<service>声明serivce,在<service>元素中添加<intent-filter>指定如何访问该Service.
注意:调用startService 的生命周期是这样的onCreate-----------à onStart
调用bindService 的生命周期是这样的onCreate-----------à onBind
package com.king.android.controls;
2
3 import android.app.Service;
4 import android.content.Intent;
5 import android.os.IBinder;
6 import android.widget.Toast;
7
8 /**
9
10 * 描述:第一个服务实例演示
11 * 作者:Andy.Liu
12 * 时间: 2012-7-18 上午07:21:48
13 **/
14 public class FirstService extends Service {
15
16 private static final String MY_SERVICE = "com.king.android.controls.my_service";//服务指定的动作
17
18 @Override
19 public IBinder onBind(Intent arg0) {
20
21 Toast.makeText(FirstService.this, "onBind.............", Toast.LENGTH_LONG).show();
22 return null;
23 }
24 @Override
25 public void onCreate() {
26 Toast.makeText(FirstService.this, "onCreate...........", Toast.LENGTH_LONG).show();
27 super.onCreate();
28 }
29
30 @Override
31 public void onStart(Intent intent, int startId) {
32 Toast.makeText(FirstService.this, "onStart.............", Toast.LENGTH_LONG).show();
33 super.onStart(intent, startId);
34 }
35
36 @Override
37 public void onDestroy() {
38 Toast.makeText(FirstService.this, "OnDestory............", Toast.LENGTH_LONG).show();
39 super.onDestroy();
40 }
41
42 }
43
44
45
46
47
48 package com.king.android.controls;
49
50 import android.app.Activity;
51 import android.app.Service;
52 import android.content.ComponentName;
53 import android.content.Intent;
54 import android.content.ServiceConnection;
55 import android.os.Bundle;
56 import android.os.IBinder;
57 import android.view.View;
58 import android.view.View.OnClickListener;
59 import android.widget.Button;
60 import android.widget.Toast;
61
62 import com.king.android.R;
63
64 /**
65
66 * 描述:演示Service的Activity
67 * 作者:Andy.Liu
68 * 时间: 2012-7-18 上午07:27:19
69 **/
70 public class ServiceActivity extends Activity implements OnClickListener{
71 private static final String MY_SERVICE = "com.king.android.controls.my_service";//服务指定的动作
72 @Override
73 protected void onCreate(Bundle savedInstanceState) {
74 super.onCreate(savedInstanceState);
75 initView();
76 }
77
78 private void initView(){
79 setContentView(R.layout.show_service_layout);
80 Button btnSerivce = (Button) findViewById(R.id.btn_start);
81 btnSerivce.setOnClickListener(this);
82 btnSerivce = (Button) findViewById(R.id.btn_stop);
83 btnSerivce.setOnClickListener(this);
84 btnSerivce = (Button) findViewById(R.id.btn_bind);
85 btnSerivce.setOnClickListener(this);
86 btnSerivce = (Button) findViewById(R.id.btn_unBind);
87 btnSerivce.setOnClickListener(this);
88 }
89
90 @Override
91 public void onClick(View v) {
92 Intent intent = null;
93 switch(v.getId()){
94 case R.id.btn_start:
95 intent = new Intent();
96 intent.setAction(MY_SERVICE);
97 startService(intent);
98 break;
99 case R.id.btn_stop:
100 intent = new Intent();
101 intent.setAction(MY_SERVICE);
102 stopService(intent);
103 break;
104 case R.id.btn_bind:
105 intent = new Intent();
106 intent.setAction(MY_SERVICE);
107 bindService(intent, conn, Service.BIND_AUTO_CREATE);
108 break;
109 case R.id.btn_unBind:
110 intent = new Intent();
111 intent.setAction(MY_SERVICE);
112 unbindService(conn);
113 break;
114 }
115 }
116
117 private ServiceConnection conn = new ServiceConnection() {
118
119 @Override
120 public void onServiceDisconnected(ComponentName name) {
121 Toast.makeText(ServiceActivity.this, "连接成功", Toast.LENGTH_LONG).show();
122 }
123
124 @Override
125 public void onServiceConnected(ComponentName name, IBinder service) {
126 Toast.makeText(ServiceActivity.this, "断开连接", Toast.LENGTH_LONG).show();
127 }
128 };
129
130 }