android 48 广播
系统开始重启会发送开机重启广播,电量低的时候会发送电量低的广播,广播注册有2种:系统说明文件xml注册和Java代码注册,前者是静态注册(全局注册)后者是动态注册(依赖于当时组建,组件销毁就收不到广播了)。




Activity.java
package com.sxt.day07_04; import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener; public class MainActivity extends Activity {
MyReceiver2 mReceiver; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
registerReceiver();
setListener();
} private void setListener() {
sendBroadcast1ClickListener();
sendBroadcast2ClickListener();
} private void sendBroadcast2ClickListener() {
findViewById(R.id.btnSendBroadcast_2).setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
Intent intent=new Intent("com.sxt.day07_04.MyReceiver2");//
intent.putExtra("key", "hello android!");
sendBroadcast(intent);
}
});
} private void sendBroadcast1ClickListener() {
findViewById(R.id.btnSendBroadcast_1).setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
Intent intent=new Intent("com.sxt.day07_04.MyReceiver1");
intent.putExtra("key", "hello java!");
sendBroadcast(intent);
}
});
} //java类注册的广播接收者
private void registerReceiver() {
mReceiver=new MyReceiver2();
IntentFilter filter=new IntentFilter();//意图过滤器
filter.addAction("com.sxt.day07_04.MyReceiver2");//广播的字符串
registerReceiver(mReceiver, filter);
} class MyReceiver2 extends BroadcastReceiver{
@Override
//收到广播执行的方法
public void onReceive(Context context, Intent intent) {
Log.i("main","MyReceiver2.onReceive():"+intent.getStringExtra("key"));
}
} @Override
protected void onDestroy() {
super.onDestroy();
//Activity退出的时候取消广播的注册,释放资源.
unregisterReceiver(mReceiver);
}
}
广播1.java
package com.sxt.day07_04; import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log; public class MyReceiver1 extends BroadcastReceiver { @Override
//收到广播后执行的方法
public void onReceive(Context context, Intent intent) {
Log.i("main","MyReceiver1.onReceive():"+intent.getStringExtra("key"));
} }
系统描述文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sxt.day07_04"
android:versionCode="1"
android:versionName="1.0" > <uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" /> <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.sxt.day07_04.MainActivity"
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="com.sxt.day07_04.MyReceiver1"> 广播接收者类
<intent-filter>
<action android:name="com.sxt.day07_04.MyReceiver1"/> 广播的字符串是这个就可以接收广播
</intent-filter>
</receiver>
</application> </manifest>
android 48 广播的更多相关文章
- 【Android】广播BrocastReceiver
1.Android中广播主要分为两种:标准广播和有序广播. 标准广播:完全异步执行.广播发出后,所有的广播接收器几乎在同一刻收到广播事件,没有先后顺序之分. 优点:效率高 缺点:不能被截断 有序广播: ...
- Android之 广播
(以下内容是阅读郭霖大神的<第一行代码>后自己总结的) 1.概述 广播是Android的四大组件之一. Android的广播机制十分灵活. 2.发送广播 如上图Android的广播主要分为 ...
- Android学习--广播机制
广播机制简介 Android的广播可以分为两种类型的,标准广播和有序的广播: 标准广播: 是一种完全异步执行的广播,在广播发出去之后,所有的广播接收器几乎是同一时接收到这条广播. 有序广播: 是一 ...
- Android study --- 广播
广播接收者 在Android系统运行时会产生很多事件,事件产生时,回想系统发送广播,只要向系统发送广播,系统就知道发生了相应的事件,从而执行相对应的代码.在系统中只要使用广播接受者,就可以接收广播 创 ...
- Android 通过广播获取网络状态
Android系统网络连接状态的改变会发一个广播,注册一个广播接收者,实时动态的检测网络状态,及时提醒用户,优化用户体验. 本文仅提供WIFI 状态的检测作为参考,其他网络连接方式请 ...
- Android开机广播
有些时候我们常常需要某个程序开机运行.在这个时候我们就需要监听系统的开机广播,然后启动我们的程序即可. 不多说 直接上代码: public class BootReceiver extends Bro ...
- android之广播(二)
广播接受者不仅可以通过清单文件来向系统注册,也可以通过代码来注册.并且有的广播必须通过代码来注册广播接受者. 锁屏和解锁广播 电量改变广播 打开屏幕和关闭屏幕 这里将广播接收者写在服务里面 <? ...
- android之广播(一)
Android中的广播 系统在运行过程中会产生很多事件,某些事件产生的时候,比如:电量的改变,收发短信.拨打电话.屏幕解锁.开机等等,系统会发送广播.只要应用程序接受到这条广播就知道系统发生了相应的事 ...
- Android -- 简单广播接收与发送(2)--动态注册广播接收器
1. 效果图
随机推荐
- Android Activity与Service的交互方式
参考: http://blog.csdn.net/gebitan505/article/details/18151203 实现更新下载进度的功能 1. 通过广播交互 Server端将目前的下载进度,通 ...
- Java操作Oracle数据库以及调用存储过程
操作Oracle数据库 publicclass DBConnection { //jdbc:oracle:thin:@localhost:1521:orcl publicstaticf ...
- [BZOJ 1034] [ZJOI2008] 泡泡堂BNB 【贪心】
题目链接:BZOJ - 1034 题目分析 这道题和田忌赛马的典故很相似. 先要将两队的队员都按照水平从小到大分别排序. 然后每次尝试用我方最弱的队员赢对方最弱的队员,或者用我方最强的队员赢对方最强的 ...
- win7+ubuntu双系统安装方法
转自win7+ubuntu双系统安装方法 前段时间又安装一下win7+ubuntu双系统,过段时间就会忘记,这次自己写下来,以便以后查看. 1. 先准备一个分区来安装ubuntu.在win7 ...
- Andoid 学习笔记 AppCompatEditText
android.support.v7.widget.AppCompatEditText 只有浮动标签 style中添加 <style name="txt_lab" paren ...
- Android与服务器端数据交互(http协议整合struts2+android)
在android中有时候我们不需要用到本机的SQLite数据库提供数据,更多的时候是从网络上获取数据,那么Android怎么从服务器端获取数据呢?有很多种,归纳起来有 一:基于Http协议获取数据方法 ...
- Oracle“不等于号”与Nulls的情况(转)
今天突然才发现,Oracle中的“不等于操作符”是忽略null的. 比如,查询comm不等于的500的记录,我会理所当然地使用where comm != 500 预想会返回包含null的不等于500的 ...
- Android adb opendir failed ,permission denied
最近在使用adb命令ls的时候会提示:adb opendir failed ,permission denied , 解决方法: adb shell cd data/data/pakageName l ...
- Unity 的“Vertex Lit Rendering path“中 shader Pass 的注意事项
"MADFINGER/Environment/Unlit (Supports Lightmap)"是 ShadowGun 示例中最简单的 shader 了,如下: // Unlit ...
- javad的Collection集合
集合框架:★★★★★,用于存储数据的容器. 特点: 1:对象封装数据,对象多了也需要存储.集合用于存储对象. 2:对象的个数确定可以使用数组,但是不确定怎么办?可以用集合.因为集合是可变长度的. 集合 ...