[Android]BroadcastReceiver静態登録

2264 ワード

静的登録の方法:
    



    

    
        
            
                

                
            
        
         
			 
			 
				 
		
    



ブロードキャスト受信機BroadcastReceiverという名前のclsReceiver 2を登録しました
登録方式はラベルで登録し、中にはintent-filterを設定し、actionは標準放送Actionの一つです.
[時間再設定イベント]
ACTION_TIME_CHANGED
これにより、システム時間が変更されると、このメッセージが送信され、clsReceiver 2がイベントを受信し、onReceive()メソッド内で処理される.
手動でイベントを送信する場合は、受信機を動的に登録し、イベントを受信機にアクティブに送信する必要があります.
IntentFilter filter = new IntentFilter("com.broadcast2.MY_ACTION");
clsReceiver2 clsReceiver = new clsReceiver2();
registerReceiver(clsReceiver,filter);//         ,   com.broadcast2.MY_ACTION  

Intent intent=new Intent();
intent.setAction("com.broadcast2.MY_ACTION");
intent.putExtra("myMsg","           ");
sendBroadcast(intent);

受信機キーコード:この受信機名は、以前のコードをコピーして貼り付けたため、上記とは異なります.
        private Context context;
	public MyReceiver(Context context) {
		this.context=context;
	}
	
	@Override
	public void onReceive(Context context, Intent intent) {			
		String msg = intent.getStringExtra("myMsg");//  intent  myMsg      msg     
		Toast.makeText(this.context, msg, Toast.LENGTH_LONG).show();
	}
mymsgは、myMsgが上記と一致していることに注意してください.すなわち、最初のパラメータの名前は、追加のメッセージの名前であり、その名前によって取得されます.
intent.putExtra("myMsg","           ");