您的位置:首页 > 移动开发 > Android开发

Android学习篇章30-Broadcast广播基础-自定义广播(动态广播)

2013-11-02 19:41 453 查看
MainActivity:

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onPause() {
//取消动态注册  动态广播一旦注册必须取消 ,否则会有异常
//动态注册的广播 生命周期要比静态注册的生命周期短的多 只有程序在运行时才能收听广播
this.unregisterReceiver(receiver);
super.onPause();
}

MyTestBroadcastReceiver receiver=new MyTestBroadcastReceiver();
@Override
protected void onResume() {
//动态注册广播接收器
IntentFilter filter=new IntentFilter(MyTestBroadcastReceiver.SEND_ACTION);
this.registerReceiver(receiver, filter);
super.onResume();
}
public void clickBtn(View view)
{
Intent intent=new Intent();
//intent.setPackage(packageName);//可以限定这个广播的收听范围是在这个包中
intent.setAction("android.intent.action.Send_My_Broadcast");

sendBroadcast(intent);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}


MyTestBroadcastReceiver:

public class MyTestBroadcastReceiver extends BroadcastReceiver{

public static final String  SEND_ACTION="android.intent.action.Send_My_Broadcast";
@Override
public void onReceive(Context context, Intent intent) {
String action=intent.getAction();
if(SEND_ACTION.equals(action))
{
Log.i("test", "已经收到了广播");
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: