android 48 广播
2015-10-19 00:41
453 查看
系统开始重启会发送开机重启广播,电量低的时候会发送电量低的广播,广播注册有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之Dialog相关
- Android提示版本更新
- android 之杂七杂八
- Cordova 5.3.3(PhoneGap)Android 开发环境搭建
- Android Dialog触摸对话框外部让其消失的实现方法
- ANDROID开发之SQLite详解
- Android事件分发机制完全解析
- android中layout_gravity 和 gravity的区别
- 搜索----Android Demo
- 搜索----Android Demo
- Android中的动画
- Android Studio Git使用
- Android-Activity的四状态、七生命周期、和四启动模式
- Android TextView 使用替换构建出不同样式的字符串
- ubuntu android 设备
- Android_03--四大组件_Activity+BroadcastReceiver+service+ContentProvider
- Android_01--Android入门+四大布局+点击事件+文件操作
- android 开发集合
- android下JNI开发--02
- android 自定义listview无法响应点击事件OnItemClickListener