1.首先要聲明廣播
- private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver()
- {
- @Override
- public void onReceive(Context context, Intent intent) //onReceive函數不能做耗時的事情,參考值:10s以內
- {
- Log.d("scott", "on receive action="+intent.getAction());
- String action = intent.getAction();
- if (action.equals("com.scott.sayhi"))
- {
- showDialog("on receive action="+intent.getAction());
- }
- }
- };
2.其次要注冊廣播,有兩種方式:xml注冊和代碼注冊
xml注冊:
<receiver Android:name="com.scott.sayhi.MyBroadcastReceiver" >
<intent-filter>
<action android:name="com.scott.sayhi" />
</intent-filter>
</receiver>
代碼注冊:
IntentFilter filter = new IntentFilter();
filter.addAction("com.scott.sayhi");
MyActivity.this.registerReceiver(mBroadcastReceiver, filter);
上述2個步驟就可以了。
3.發送廣播
- Intent intent = new Intent();
- intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- intent.setAction("com.scott.sayhi");
- MyActivity.this.sendBroadcast(intent);
4.收聽開機廣播
intent-filter設置如下即可
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>