1)一个定义好的service必须在AndroidManifest.xml中通过<service>元素声明才能使用。
2)为了实现进程间的相互通信,Android采用了一种轻量级的实现方式RPC(Remote Procedure Call,
远程进程调用)来完成。并且Android通过接口定义语言(Android Interface Definition
Language,AIDL)来生成两个进程间相互访问的代码。
3)在AIDL文件中可以声明任意多个方法,方法可以带参数也可以有返回值,参数和返回值可以是任意类
型。但注意除了java原始类型、String、List、Map和CharSequce不需要导入,其他任何类型即使在同一
个包中都需要导入。
4)AIDL文件的内容与java代码非常相似,但不能加修饰符(如private)、AIDL服务不支持的数据类型
(如InputStream、OutputStream)等内容。在所在包下直接创建AIDL文件。若该文件的内容正确,ADT
(刷新一下)会自动生成一个同名的java文件。
定义一个MyService类时,是继承Service类。
public class MyService extends Service{
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
Log.i("SERVICE", "onBind..........");
Toast.makeText(MyService.this, "onBind...........", Toast.LENGTH_LONG).show();
return null;
}
@Override
public void onCreate() {
// TODO Auto-generated method stub
Log.i("SERVICE", "onCreate.............");
Toast.makeText(MyService.this, "onCreate.............", Toast.LENGTH_LONG).show();
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
Log.i("SERVICE", "onDestroy.......");
Toast.makeText(MyService.this, "onDestroy......", Toast.LENGTH_LONG).show();
}
@Override
@Deprecated
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
Log.i("SERVICE", "onStart.........");
Toast.makeText(MyService.this, "onStart.........", Toast.LENGTH_LONG).show();
}
开启服务/关闭服务步骤:
1.定义一个Intent。
2.设置这个Intent的Action。
3.调用startService()/stopService() 方法。
绑定/释放一个服务步骤:
1.定义一个 ServiceConnection类的conn,这个参数对后面有用。它必须实现onServiceConnected(ComponentName arg0, IBinder arg1) 和onServiceDisconnected(ComponentName arg0)这两个方法。
2.定义一个Intent。 3.设置这个Intent的Action。
4.调用bindService()/unbindService()方法。 (conn将作为一个参数传递给这两个方法)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。