Broadcast Android 四大组件之一
广播的生命周期比Activity简单的多,下面是原文:
大意为:如果一个广播处理完onReceive 那么系统将认定此对象将不再是一个活动的对象,也就会finished掉它。 很简单,接受广播的时候创建,接收后就成为垃圾了。
首先定义一个广播接收类:
public class myBroadCast extends BroadcastReceiver {
public myBroadCast() {
Log.v("BROADCAST_TAG", "myBroadCast");
}
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(action.equals(ACTION_NAME)){
Toast.makeText(Test.this, "处理action名字相对应的广播", 200);
}
Log.v("BROADCAST_TAG", "onReceive"); }
}
注册广播:
一、xml 配置 manifest 中:
<receiver android:name="广播接收的类">
<intent-filter>
<action android:name="接收的广播动作(可自定义)"/>
</intent-filter>
</receiver>
二、代码中注册广播:
public void registerBroadcastReceiver(){
IntentFilter myIntentFilter = new IntentFilter();
myIntentFilter.addAction("动作名");
//注册广播
registerReceiver("广播接收类", myIntentFilter);
}
发送广播:
例如在一个botton中点击发送:
@Override
public void onClick(View v) {
Intent intent = new Intent(ACTION_INTENT_TEST);
sendBroadcast(intent);
}
在接收到广播后启动一个Activity:
@Override
public void onReceive(Context context, Intent intent) {
intent.setClass(context, SaveDataActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}