LocalBroadcastManager 的使用

一、使用本地广播发送一条广播(本例为自己发送自己接收,本地广播也可以是其他应用接收)然后接收到广播时回调Receiver类中的回调方法onReceive()在此方法中自定义发出通知

代码

 1 package com.qf.broadcastreceiver06;
 2
 3 import android.app.Activity;
 4 import android.app.Notification;
 5 import android.app.NotificationManager;
 6 import android.content.BroadcastReceiver;
 7 import android.content.Context;
 8 import android.content.Intent;
 9 import android.content.IntentFilter;
10 import android.graphics.BitmapFactory;
11 import android.os.Bundle;
12 import android.support.v4.app.NotificationCompat;
13 import android.support.v4.content.LocalBroadcastManager;
14 import android.view.View;
15
16 public class MainActivity extends Activity {
17
18     LocalBroadcastManager localBroadcastMgr;//本地广播管理器
19
20     MyReceiver myReceiver;
21     @Override
22     protected void onCreate(Bundle savedInstanceState) {
23         super.onCreate(savedInstanceState);
24         setContentView(R.layout.activity_main);
25
26         //获取本地广播管理器对象
27         localBroadcastMgr=LocalBroadcastManager.getInstance(getApplicationContext());
28
29         myReceiver=new MyReceiver();
30         //注册本地广播接收器
31         localBroadcastMgr.registerReceiver(myReceiver, new IntentFilter("com.qf.broadcast.disen"));
32     }
33
34     public void sendBroadcast(View v){//发送本地广播
35
36         Intent intent=new Intent("com.qf.broadcast.disen");
37
38         //通过本地广播管理器来发送广播
39         localBroadcastMgr.sendBroadcast(intent);
40     }
41
42
43     @Override
44     protected void onDestroy() {
45         super.onDestroy();
46
47         //取消注册本地广播接收器
48         localBroadcastMgr.unregisterReceiver(myReceiver);
49     }
50
51     //定义广播接收器
52     class MyReceiver extends BroadcastReceiver{
53         @Override
54         public void onReceive(Context context, Intent intent) {
55             // TODO Auto-generated method stub
56             //发送通知
57
58             //获取系统的通知管理器组件
59             NotificationManager notifyMgr=
60                     (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE);
61
62             //实例化广播构造器
63             NotificationCompat.Builder builder=
64                     new NotificationCompat.Builder(getApplicationContext());
65
66             //设置通知的小图标、标题、内容、滚动内容、动作等
67             builder.setSmallIcon(android.R.drawable.ic_menu_call)
68                    .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher))
69                    .setContentTitle("提示")
70                    .setContentText("最新消息:暂定今天下午5点开会,请准时回来.....")
71                    //设置通知在状态栏里滚动
72                    .setTicker("最新消息:暂定今天下午5点开会,请准时回来.....最新消息:暂定今天下午5点开会,请准时回来.....最新消息:暂定今天下午5点开会,请准时回来.....")
73                    .setPriority(NotificationCompat.PRIORITY_MAX)
74                    .setDefaults(Notification.DEFAULT_SOUND);
75
76             notifyMgr.notify(1, builder.build());
77
78         }
79     }
80 }

MainActivity.java

效果如下:

时间: 2024-08-05 06:12:58

LocalBroadcastManager 的使用的相关文章

Android 之使用LocalBroadcastManager解决BroadcastReceiver安全问题

在Android系统中,BroadcastReceiver的设计初衷就是从全局考虑的,可以方便应用程序和系统.应用程序之间.应用程序内的通信,所以对单个应用程序而言BroadcastReceiver是存在安全性问题的,相应问题及解决如下: 1.当应用程序发送某个广播时系统会将发送的Intent与系统中所有注册的BroadcastReceiver的IntentFilter进行匹配,若匹配成功则执行相应的onReceive函数.可以通过类似sendBroadcast(Intent, String)的

Android 中LocalBroadcastManager的使用方式

Android中BroadcastReceiver主要用途有 发送通知,更新UI或者数据,应用程序间相互通信,监听系统状态(比如开机,网络等) Android中BroadcasetReceiver的注册方式 manifest清单文件中的全局注册 按照生命周期,在Service或者Activity中使用代码注册 manifest的注册方式  <receiver android:name="com.sample.test.MyBroadcastReciever">       

BroadcastReceiver广播接收者(四)——本地广播LocalBroadcastManager以及在onReceive()中弹出Dialog

MainActivity如下: package cc.cv; import android.os.Bundle; import android.support.v4.content.LocalBroadcastManager; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.app.Activity; import an

使用LocalBroadcastManager解决BroadcastReceiver安全问题

在Android系统中,BroadcastReceiver的设计初衷就是从全局考虑的,可以方便应用程序和系统.应用程序之间.应用程序内的通信,所以对单个应用程序而言BroadcastReceiver是存在安全性问题的,相应问题及解决如下: 1.当应用程序发送某个广播时系统会将发送的Intent与系统中所有注册的BroadcastReceiver的IntentFilter进行匹配,若匹配成功则执行相应的onReceive函数.可以通过类似sendBroadcast(Intent, String)的

Fragment使用LocalBroadcastManager接收广播消息

这种方式不用在配置文件加东西 变量声明 [java] view plain copy LocalBroadcastManager broadcastManager; IntentFilter intentFilter; BroadcastReceiver mReceiver; 广播注册,可以写在Activity(onCreate),也可以写在Fragment(onActivityCreated)里. [java] view plain copy broadcastManager = LocalB

LocalBroadcastManager 的实现原理,Handler还是 Binder?

原文: http://www.trinea.cn/android/localbroadcastmanager-impl/ 对 LocalBroadcastManager 大家应该都不陌生,相对 BroadcastReceiver,它只能用于应用内通信,安全性更好,同时拥有更高的运行效率.也是需要发送应用内广播时的官方推荐. 大家也都知道BroadcastReceiver的通信是走 Binder 机制的,而 LocalBroadcastManager 因为叫LocalBroadcast,可能让人产

(转)Android 中LocalBroadcastManager的使用方式

发表于2个月前(2014-11-03 22:05)   阅读(37) | 评论(0) 0人收藏此文章, 我要收藏 赞0 1月10日 #长沙# OSC 源创会第32期开始报名 摘要 android中广播的作用非常大,对程序的运行起着非常重要的作用 LocalBroadcastManager Android中BroadcastReceiver主要用途有 发送通知,更新UI或者数据,应用程序间相互通信,监听系统状态(比如开机,网络等) Android中BroadcasetReceiver的注册方式 m

LocalBroadcastManager源码分析

源码分析 /* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * htt

揭秘LocalBroadcastManager实现原理

LocalBroadcastManager经常用的App内通信组件,也是官方推荐的App内广播发送组件 起初,用这个组件的时候,见名知意,因为LocalBroadcast,所以以为也是用Binder实现的底层,结果不是这样的. 1.平时我们都是这样用LocalBroadcastManager a.注册并接收 LocalBroadcastManager broadcastManager = LocalBroadcastManager.getInstance(context); IntentFilt