android Service与BroadcastReceiver

 service,能看到这的都知道它是什么意思,有什么用,为什么要有它。最简单的用法如下:
 
 注册:
 

<service name=".xxxService"/></service>

 
 调用:
startService(xxxService);


 补充:1.前台service;2.bindService的使用;3.远程service;

 
 和调用activity一样。
 
 BroadcastReceiver,广播接收处理器。我们来看
 1、为什么要用到广播;
 2、怎么发送广播;
 3、怎么接收广播;
 
 第一点,广播,字面意思就是将消息通知给所有可以听到的进程,BroadcastReceiver一般都是放在Intent中的,所以它与Intent的作用大体类似,是组件
 或者程序之间通信的桥梁。
 
 第二点,发动广播有两种方法:静态注册和动态注册,分别为:
 
<receiver android:name=".TestReceiver" >
        <intent-filter>
            <action android:name="com.androidbook.intents.testbc" />
        </intent-filter>
    </receiver>

 特点:不管改应用程序是否处于活动状态,都会进行监听。

 

TestReceiver receiver = new TestReceiver();
 //创建过滤器,并指定action,使之用于接收同action的广播
 IntentFilter filter = new IntentFilter("TestReceiver_Action_Name");//等同于上面的com.androidbook.intents.testbc
 //注册广播接收器
 registerReceiver(receiver, filter);

 特点:当应用程序关闭后,就不再进行监听。
 
 
 第三点,接收广播,extends BroadcastReceiver,再重写onReceive方法;
 
 下面我们来看看一个简单的例子:
 
 首先看AndroidMainfest.xml文件中广播接收器的注册:
<receiver android:name=".MyReceiver" >
            <intent-filter>
                <action android:name="com.example.test" />
            </intent-filter>
        </receiver>

  
 发送广播代码:
Intent intent = new Intent("com.example.test");
  intent.putExtra("data", "哈哈");
  sendBroadcast(intent);

  
 广播接收器处理类:
@Override
 public void onReceive(Context context, Intent intent) {
  Toast.makeText(context, intent.getExtras().get("data").toString(),
    Toast.LENGTH_LONG).show();
 }

 
    我的博客其它文章列表
  http://my.oschina.net/helu

转载于:https://my.oschina.net/helu/blog/141730

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值