Android中的BroadCast静态注册与动态注册
1.静态注册
新建MyBroadcast类继承BroadcastReceiver,实现onReceive方法
/** * Author:JsonLu * DateTime:2015/9/21 16:44 * Email:luxd@sumpay.com * Desc: **/ public class MyBroadcast extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (MyTest.ACTION1.equals(action)) { T.showShort(context, String.valueOf(System.currentTimeMillis())); } else if (MyTest.ACTION2.equals(action)) { Date date = new Date(); DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); T.showShort(context, dateFormat.format(date)); } else { T.showShort(context, "其他广播"); } } }
在AndroidManifest文件中注册
<receiver android:name=".broadcast.MyBroadcast"> <intent-filter> <action android:name="android.intent.action.my_broadcast" /> </intent-filter> </receiver>
发送广播
public static final String ACTION1 = "android.intent.action.my_broadcast"; public static final String ACTION2 = "android.intent.action.my_broadcast1";
/** * 静态注册广播 * 需要在AndroidManifest文件中进行注册 * */ case R.id.staticsendbrocast: Intent intent1 = new Intent(); intent1.setAction(ACTION1); sendBroadcast(intent1); break;
2.动态注册
/** * 动态注册广播 * 不需要在AndroidManifest文件中注册 */ case R.id.sendbrocast: Intent intent = new Intent(); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(ACTION2); registerReceiver(new MyBroadcast(), intentFilter); intent.setAction(ACTION2); sendBroadcast(intent); break;