Android: dynamically register BroadcastReceiver
Annotations are directly written in the code, which is intuitive. I think these definition system broadcast macros are not very good;
MainActivity. java:
Package com. vrinux. broadcastdemo; import android. app. activity; import android. content. broadcastReceiver; import android. content. context; import android. content. intent; import android. content. intentFilter; import android. OS. bundle; import android. util. log; import android. widget. toast; public class MainActivity extends Activity {// defines a filter; private IntentFilter intentFilter; // defines a broadcast listener; private NetChangRecei Ver netChangReceiver; @ Override protected void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R. layout. fragment_main); // instantiate the filter; intentFilter = new IntentFilter (); // Add the filtered Action value; intentFilter. addAction (Intent. ACTION_AIRPLANE_MODE_CHANGED); // instantiate the broadcast listener; netchanger ER = new netChangReceiver (); // register the broadcast listener with the filter; registerReceiver (NetChangReceiver, intentFi) Lter) ;}@ Override protected void onDestroy () {// TODO Auto-generated method stub super. onDestroy (); // cancel the registration of the broadcast listener when the Activity is destroyed; unregisterReceiver (netChangReceiver);} // create a broadcast listener that inherits the BroadcastReceiver; class NetChangReceiver extends BroadcastReceiver {// rewrite the onReceive method. The entity of this method is the Execution Code after receiving the broadcast. @ Override public void onReceive (Context context, Intent intent) {// TODO Auto-generated method stub Log. I ("MainA Ctivity "," starting flight mode ~ "); Toast. makeText (MainActivity. this," flight mode Start ~ ", Toast. LENGTH_SHORT). show ();}}}