- 浏览: 562481 次
- 性别:
- 来自: 青岛
-
文章分类
最新评论
-
myworkfirst:
这个mShowing是哪里的定义的? 有没有完整的例子
通过反射重新设置设置Dialog -
mchaoliu:
楼主,这个方法是在哪调用呢?
修改快速滑动滑块的图片为新浪微博滑块样式 -
fxiaozj:
楼主,这个方法是在哪调用呢?
修改快速滑动滑块的图片为新浪微博滑块样式 -
yun2223:
感谢一下,把gen 添加到source 以及检查一下 其他路 ...
gen already exists but is not a source folder -
flyingsir_zw:
解决方法: 1. 右键点击工程,选择 "Proper ...
gen already exists but is not a source folder
广播及广播接收器
1.BroadCast 广播:
使用很简单,实例化一个意图对象,把要发送的信息封装在意图对象中,然后使用
Context。sendBroadCast()方法,把意图对象发送(即广播)出去。
代码示例:
//用给出的action创建一个意图对象,该action在广播过滤器中要用到 Intent intent = new Intent("bc1"); //要广播的信息 intent.putExtra("val", BroadcastReceiver1.class.getName()); //发送广播 sendBroadcast(intent);
2.BroadCastReceiver广播接收器:
必须建立一个广播接收器来接收广播消息,广播接收器的核心是过滤器IntentFilter。
建立广播接收器分为静态建立和动态建立:
首先要新建一个广播接收类继承BroadcastReceiver,重写onReceive方法;
代码示例,BroadcastReceiver1 .java:
public class BroadcastReceiver1 extends BroadcastReceiver { @Override public void onReceive(Context arg0, Intent arg1) { String val = arg1.getStringExtra("val"); Toast.makeText(arg0, "Get message:"+val, Toast.LENGTH_LONG).show(); } }
①如果是静态建立:在清单文件中注册BroadCastReceiver;
代码示例,AndroidManifest.xml:
<receiver android:name=".BroadcastReceiver1"> <intent-filter > <action android:name="bc1"/> </intent-filter> </receiver>
receiver节点的android:name是广播接收类的类名,intent-filter节点的android:name为要过滤的广播消息,只接受
action="bc1"的广播。
这样通过sendBoardCast(intent)发送出来的广播,被该广播接收器通过广播过滤器匹配后接收,并通过onReceive()方
法处理接收到的信息,完成了整个信息传递的过程。
②如果是动态建立,不需要在清单文件中注册BroadCastReceiver,在发送广播的类中实例化一个IntentFiltler的成员变
量,并在onStart()方法中注册广播过滤器,在onStop()方法中注销广播过滤器。
代码示例:
public class MainAct extends Activity { IntentFilter intentFilter = new IntentFilter(); BroadcastReceiver2 bc2 = new BroadcastReceiver2(); ...... @Override protected void onStart() { super.onStart(); intentFilter.addAction("bc2"); registerReceiver(bc2, intentFilter);//注册监听 } @Override protected void onStop() { super.onStop(); unregisterReceiver(bc2); //取消监听 } }
--------------------------------------------------本示例完整代码--------------------------------------------------------------
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.wyx.demo" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".MainAct" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name=".BroadcastReceiver1"> <intent-filter > <action android:name="bc1"/> </intent-filter> </receiver> </application> </manifest>
MainAct.java:
/** * 该页面负责发送广播信息: * 发送广播消息,把要发送的信息和用于过滤的信息(如Action、Category)装入一个Intent对象, * 然后通过调用 Context.sendBroadcast()、sendOrderBroadcast()或sendStickyBroadcast()方法, * 把 Intent对象以广播方式发送出去。 */ public class MainAct extends Activity { IntentFilter intentFilter = new IntentFilter(); BroadcastReceiver2 bc2 = new BroadcastReceiver2(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn1 = (Button)findViewById(R.id.btn1); btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent("bc1"); intent.putExtra("val", BroadcastReceiver1.class.getName()); sendBroadcast(intent); } }); Button btn2 = (Button)findViewById(R.id.btn2); btn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent("bc2"); intent.putExtra("val", BroadcastReceiver2.class.getName()); sendBroadcast(intent); } }); } @Override protected void onStart() { super.onStart(); intentFilter.addAction("bc2"); registerReceiver(bc2, intentFilter);//注册监听 } @Override protected void onStop() { super.onStop(); unregisterReceiver(bc2); //取消监听 } }
BroadcastReceiver1.java:
public class BroadcastReceiver1 extends BroadcastReceiver { @Override public void onReceive(Context arg0, Intent arg1) { String val = arg1.getStringExtra("val"); Toast.makeText(arg0, "Get message:"+val, Toast.LENGTH_LONG).show(); } }
发表评论
-
Android中asset文件夹和raw文件夹区别【转】
2013-05-02 08:45 1249res/raw和assets的相同点 ... -
判断android系统的版本和package是否存在【转】
2013-04-27 14:46 27991.判断android系统的版本: publi ... -
startActivityForResult 不满足触发条件就返回的检测
2013-04-25 19:26 2061在android开发中,当不满足触发条件就按返 ... -
EditText 多行显示
2013-04-25 19:15 1775EditText 多行显示: <EditText a ... -
android 数据库导入导出
2013-04-25 15:30 3846方法1.在手机已经获得root权限的前提下(真机如果 ... -
Android使用尺寸资源 dimens
2013-04-25 13:42 6549有时候项目需要修改widget的控件的距离相关属性,只需要 ... -
checkbox 设定文字和选框之间的距离及自定义样式
2013-04-22 17:36 16089改变checkbox默认的文字与选框之间的距离两种方案,刚 ... -
解决 Eclipse 导入安卓项目 No projects are found to import
2013-04-21 10:50 6675在Eclipse里面导入已有的例子的时候,有 ... -
Android开发之Intent.Action
2013-04-19 11:41 0111 -
gen already exists but is not a source folder
2013-04-19 09:21 26566遇到android项目导入出现后重复空包等错误,往往是 ... -
[转]跟 Task 有关的 Intent对象中设置的Flag
2013-04-18 21:38 1268FLAG_ACTIVITY_BROUGHT_TO_FRON ... -
Activity 的Task与Intent FLAG
2013-04-18 21:22 4288Task是包含一系列Activity的堆栈, 遵循先进后出 ... -
[转] Tools之FindBugs
2013-04-14 17:27 9201) 安装 Help->SoftWare Update ... -
项目加入第三方NDK遇到的错误
2013-04-14 14:49 1043添加了jar包后,运行程序报 findLibrary ... -
Scrollview中动态添加widget不能滚动的为题
2013-04-14 09:48 4290在Scrollview中使用了动态添加控件,或者Scrol ... -
[转] finally块的问题(finally block does not complete normally)
2013-04-14 09:20 916当finall块中包含return语句时,Eclipse会给 ... -
Use a layout_width of 0dip instead of fill_parent for better performance
2013-04-13 23:45 3207安装了最新的ATD 18之后,新加的Lint Warnin ... -
instanceof
2013-01-29 14:19 961instanceof是Java的一个二元操作符,和==,&g ... -
android 对dp单位的理解
2013-01-08 19:55 2830什么是dp?dp就是dip,d ... -
handler简介
2012-12-15 02:38 0Handler在android里负责发送和处理消息。它的 ...
相关推荐
在Android系统中,Broadcast(广播)是一种非常重要的组件,它使得应用程序之间能够进行无定向的信息传递,即使这些应用并未直接相互交互。BroadcastReceiver(广播接收器)是Android四大组件之一,用于监听并接收...
Android Broadcast和BroadcastReceiver的权限限制方式涉及以下几个关键知识点: 1. Android中广播的权限控制主要分为发送权限和接收权限两种。发送权限指的是广播发送者对于特定的接收器发送广播时需要声明的权限。...
android mars视频代码 Broadcast TestBC源码 BroadcastReceiver www.mars-droid.com/Android开发视频教程 mars老师讲课 android 视频源码(在此特别感谢mars的无私奉献,此代码为跟随视频边学边做的)
BroadcastIntent是BroadcastReceiver与外界交互的桥梁,它包含了广播的类型和附加数据。通过设置Intent的ACTION属性,可以指定广播的类型。例如,ACTION_BATTERY_LOW用于电池电量低的广播,ACTION_BOOT_COMPLETED...
在Android系统中,BroadcastReceiver是一种重要的组件,它用于监听并响应系统或应用广播事件。BroadcastReceiver使得应用程序可以在不运行状态下接收并处理系统广播,增强了应用的交互性和响应性。本Demo,"Android ...
### BroadcastReceiver详细介绍 #### 一、概述 在Android开发中,`BroadcastReceiver`是四大组件之一,主要用于接收并处理系统或应用程序发出的广播消息。通过这种方式,应用之间可以进行简单的通信和交互,使得...
在Android系统中,`BroadcastReceiver`(广播接收者)是一种重要的组件,用于监听并响应系统或应用程序发送的各种广播意图(Intent)。广播是Android系统中的一种全局通知机制,它允许应用程序在不相互依赖的情况下...
android mars视频代码 Broadcast TestBC2源码 BroadcastReceiver www.mars-droid.com/Android开发视频教程 代码 源码 mars老师讲课 android 视频源码(在此特别感谢mars的无私奉献,此代码为跟随视频边学边做的)
在Android系统中,BroadcastReceiver(广播接收者)是四大组件之一,它负责监听并响应系统或应用程序发布的广播意图。BroadcastReceiver允许应用在不运行的情况下接收到消息,从而实现后台通信和事件处理。在这个...
通过以上讲解和提供的示例,你可以深入了解BroadcastReceiver的使用,为开发Android应用打下坚实基础。记得实践是检验真理的唯一标准,动手尝试编写和调试BroadcastReceiver,你会有更深的理解和收获。
- 使用adb shell am broadcast命令可以手动发送广播,测试BroadcastReceiver的响应情况。 通过分析这两个压缩包中的代码,你可以更深入地理解BroadcastReceiver如何与其他组件交互,以及如何有效地处理各种广播...
在Android开发中,Intent和BroadcastReceiver是两个至关重要的组件,它们构成了Android系统中不同组件间通信的核心机制。Intent用于在应用程序的不同组件之间传递消息,而BroadcastReceiver则是一种响应这些消息的...
1. 当一个广播 `Intent` 被发送(通常通过 `Context.sendBroadcast()`、`Context.sendOrderedBroadcast()` 或 `Context.send StickyBroadcast()`)时,系统会检查所有已注册的 `BroadcastReceiver`,根据它们的 ...
本教程将深入讲解Android BroadcastReceiver的基础知识,以及如何在实际应用中使用。 一、BroadcastReceiver基本概念 BroadcastReceiver允许应用程序接收并处理系统或自定义广播事件。系统广播是由Android系统发出...
4. **有序广播和无序广播**:BroadcastReceiver有两种类型的广播,有序广播(Ordered Broadcast)和无序广播(Unordered Broadcast)。有序广播按照优先级依次执行,每个Receiver都能接收到前一个Receiver的处理结果...
### 广播接收器(BroadcastReceiver)在Android中的应用与管理 #### 概念 `BroadcastReceiver`作为Android四大组件之一,在系统与应用之间扮演着关键的信息传递角色。不同于Activity等具有用户界面的组件,`...
Toast.makeText(context, "Broadcast received!", Toast.LENGTH_SHORT).show(); } } } ``` 在`onReceive()`方法中,我们根据接收到的Intent对象来判断并处理广播内容。这里我们假设了一个自定义的ACTION_NAME...
当一个Broadcast被发送时,所有注册了与该Broadcast匹配的BroadcastReceiver(广播接收器)都会收到这个消息,并可以执行相应的处理操作。这种机制使得不同应用程序之间可以相互协作,例如,当手机接收到短信时,...
使用人群:BroadcastReceiver初学者。 里面涉及BroadcastReceiver的静态注册(无序广播)、动态注册(无序广播)、有序广播。 项目对应:https://shuaici.blog.csdn.net/article/details/118337894
通过创建BroadcastReceiver,注册它,发送Broadcast,以及在接收端处理数据,我们可以轻松地在两个不同的Activity之间传递信息。注意,为了优化资源使用,记得在适当的时候注销BroadcastReceiver。