我对BroadcastReceiver的简单理解
2011-07-31 17:59
417 查看
1.在AndroidManifest.xml中先注册写好的MyBroadcastReceive
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.lzm.android.broadcastReceiver" 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=".BroadcastReceiverDemo" 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="MyBroadcastReceiver"> <intent-filter> <action android:name="android.intent.action.EDIT"/> </intent-filter> </receiver> <!-- <receiver android:name="MyBroadcastReceiver"> <intent-filter> <action android:name="android.intent.action.BATTERY_LOW"></action> </intent-filter> </receiver> --> </application> </manifest>
2.写一个类来extends类BroadcastReceiver,并实现onReceiver方法
package org.lzm.android.broadcastReceiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; public class MyBroadcastReceiver extends BroadcastReceiver { private static final String TAG = "MyBroadcastReceiver"; public MyBroadcastReceiver() { // TODO Auto-generated constructor stub System.out.println("MyBroadcastReceiver"); Log.i(TAG, "create"); } @Override public void onReceive(Context context, Intent intent) { System.err.println("onReceive"); Log.i(TAG, "onReceive"); } }
3.在Activity类中先个Button来触发发送broadcast(intent)事件
在intent.setAction(Intent.ACTION_EDIT)中的action与AndroidManifest.xml中注册的action一样,这样receiver才能接收到。最后调this.sendBroadcast(intent)来发送广播。
import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class BroadcastReceiverDemo extends Activity implements OnClickListener{ /** Called when the activity is first created. */ Button b ; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); b = (Button)findViewById(R.id.button1); b.setOnClickListener(this); } @Override public void onClick(View v) { if(v == b){ Intent intent = new Intent(); intent.setAction(Intent.ACTION_EDIT); this.sendBroadcast(intent); } } }
相关文章推荐
- Android中Intent具体解释(二)之使用Intent广播事件及Broadcast Receiver简单介绍
- 对BroadcastReceiver的理解
- 学习笔记:四大组件之Broadcast Receiver理解
- Android BroadcastReceiver的简单实用
- 对BroadCastReceiver的理解
- android BroadcastReceiverd的简单使用
- notification+service+broadcastreceiver实现简单的音乐播放器
- BroadcastReceiver简单实例
- Android BroadcastReceiver的简单使用
- 简单 易懂的了解android中的Broadcast Receiver
- Android SharedPreferences与BroadcastReceiver简单结合
- 黑马程序员------------------Android SharedPreferences与BroadcastReceiver简单结合(手机号码自动加拨)
- BroadCastReceiver(广播接收者)动态注册简单例子
- Activity、BroadcastReceiver、Service共同工作的简单例子
- Android四大组件之BroadcastReceiver(广播)简单总结
- Android中的BroadcastReceiver理解
- BroadCastReceiver(广播接收者的静态注册)简单使用例子
- 理解Service和BroadcastReceiver
- BroadcastReceiver简单应用实例
- Android 中 BroadcastReceiver以及 Broadcast的简单应用