1.在Manifest中,静态注册,和Activity同等级,在application中
<receiver android:name=".MyReceiver"> <intent-filter> <action android:name="android.intent.action.AIRPLANE_MODE"></action> </intent-filter> </receiver>
2.在Java代码里,动态注册,一般在Activity的onCreate方法里
package com.alan.broadcast1; import android.content.IntentFilter; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; /** * Created by CanxinQiu on 2016/9/1. * Description: Broadcast lesson, register receiver in Java code * */ public class MainActivity extends AppCompatActivity { private MyReceiver myReceiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); IntentFilter filter = new IntentFilter(); filter.addAction("android.intent.action.AIRPLANE_MODE"); myReceiver = new MyReceiver(); registerReceiver(myReceiver,filter); } @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(myReceiver); } }
3.两种注册方式的区别
(1).静态注册后不需要程序启动就可以接收广播,只要app装进去就有效果
(2).动态注册只有app启动后才可以接收广播