关于Service和BroadcastReceiver

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中加上
          <action android:name="~"/>
     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值