1.Service(运行在后台,没有界面)
a.定义一个继承Service的子类
1.用startService(Intent intent)方法启动Service,无数据交互
一定要重写的方法:
public IBinder onBind(Intent intent){
return null;
}
2.用bindService(Intent intent,ServiceConnection conn,int flags),flags=0或BIND_AUTO_CREATE
而ServiceConnection对象中有两个方法
1.onServiceConnected(ComponentName name,IBinder serive)
2.
onServiceDisconnected(
ComponentName name
)
所以要在
Service子类中实现IBinder重写:
prvite MyBinder binder = new MyBinder();
public class MyBinder extends Binder{
//方法
}
public IBinder onBind(Intent intent){
return binder;
}
在Acitivity中重写
ServiceConnection对象,实现两个方法,其中重点:
public void
onServiceConnected(ComponentName name,IBinder serive){
//binder = (Service子类.MyBinder)service,获取Service的onBind方法所返回的MyBinder对象
}
2.IntentService(用于执行耗时任务)
a.继承IntentService子类,需要实现的方法
protected void onHandleIntent(Intent intent){
}
3.BroadcastReceiver(要通过intent-fliter设定一个action,用于处理能匹配的intent)
a.继承
BroadcastReceiver的子类,需要重写的方法
public void onReceive(Context context,Intent intent){
}
b.广播分类:
普通广播:sendBroadcast()
有序广播:sendOrderedBroadcast()
1.在intetFilter中可以setPtiority()
2.可以在setResultExtras(bundle)将数据传给下一个广播接收者
c.设置匹配的intent的两种方法:
1.用IntentFilter的setAction(),再调用registerReceiver(receiver,filter)注册receiver
2.在manifest中加上