å¯ä»¥ã
1.广ææ¥æ¶è
ï¼BroadcastReceiverï¼
广ææ¥æ¶è
ï¼BroadcastReceiverï¼ç»§æ¿BroadcastReceiverç±»æ¥æ¶å¹¿ææå¾çJavaç±»ï¼éåï¼
public void onReceive(Context context,Intent intent)ï¼å
¶ä¸intentå¯ä»¥è·å¾ä¼ éçæ°æ®ï¼
广ææå¾å°±æ¯éè¿Context.sendBroadcast(Intent intent)æContext.sendOrderedBroadcast(Intentintent)åéçæå¾ï¼éè¿è¿ä¸ªè¯å¥ï¼è½å¤å¹¿æç»ææ满足æ¡ä»¶çç»ä»¶ï¼æ¯å¦intent设置äºaction="Receiver",åææå¨AndroidManifest.xmlä¸è®¾ç½®è¿<actionandroid:name="Receiver"/>ç广ææ¥æ¶è
é½è½å¤æ¥æ¶å°å¹¿æï¼
2.广æåéè
sendBroadcastï¼ï¼
é常广æåéæ¹å°±æ¯è°ç¨Context.sendBroadcast()çç¨åºï¼é常广æåéæ¹é½æ¯éè¿éå¼æå¾åéåºå»ï¼
广æåéæ¹å为æ®é广æåæåºå¹¿æï¼
åæ¥å¹¿æï¼åéæ¹ååºåï¼å ä¹åæ¶å°è¾¾å¤ä¸ªå¹¿ææ¥æ¶è
å¤ï¼æ个æ¥æ¶è
ä¸è½æ¥æ¶å°å¹¿æåè¿è¡ä¸çªå¤çåä¼ ç»ä¸ä¸ä¸ªæ¥æ¶è
ï¼å¹¶ä¸æ æ³ç»æ¢å¹¿æ继ç»ä¼ æï¼Context.sendBroadcast(intent);
æåºå¹¿æï¼å¹¿ææ¥æ¶è
éè¦æå设置ä¼å
级ï¼ä¼å
级é«çå
æ¥æ¶å°å¹¿æï¼ä¼å
级æ°å¼ä¸º-1000~1000ï¼å¨AndroidManifest.xmlç<intent-filterandroid:priority="1">设置ï¼æ¯å¦åå¨3个广ææ¥æ¶è
AãBãCãDï¼ä¼å
级A>B>C>D,å æ¤Aæå
æ¶å°å¹¿æï¼å½Aæ¶å°å¹¿æåï¼å¯ä»¥å广æä¸æ·»å ä¸äºæ°æ®ç»ä¸ä¸ä¸ªæ¥æ¶è
(intent.putExtra())ï¼æè
ç»æ¢å¹¿æ abortBroadcast()ï¼Context.sendOrderedBroadcast(intent);
ä¸ãåæ¥å¹¿æåéæ¹æ ¸å¿ä»£ç
Intent intent = new Intent();
intent.setAction("Receiver");
Context.sendBroadcast(intent);
æåºå¹¿æåéæ¹æ ¸å¿ä»£ç ï¼
Intent intent = new Intent();
intent.setAction("Receiver");
Context.sendOrderedBroadcast(intent,null);
äºã广ææ¥æ¶è
æ ¸å¿ä»£ç ï¼
public class MyReceiver extends BroadcastReceiver{
public void onReceive(Context context, Intent intent)
{
Bundle bundle = intent.getExtras();...
}
}
ä¸ æ³¨å该广æ
AndroidManifest.xml 注åæ¹å¼
<receiver android:name=".MyReceiver">
<intent-filter android:priority="1000">
<action android:name="Receiver"/>
</intent-filter>
</receiver>
Java类注åæ¹å¼
publicvoid registerBoradcastReceiver()
{
IntentFilter myIntentFilter = new IntentFilter();
myIntentFilter.addAction("Receiver");
registerReceiver(广æ类对象, myIntentFilter);
}
ç®åä¾å
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.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;
public class Test extends Activity{
private final String ACTION_NAME = "Receiver";
private Button mBtnEvent = null;
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//注å广æ
registerBoradcastReceiver();
LinearLayout mLinearLayout = new LinearLayout(this);
mBtnEvent= new Button(this);
mBtnEvent.setText("åé广æ");
mLinearLayout.addView(mBtnMsgEvent);
setContentView(mLinearLayout);
mBtnEvent.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
sendTestBroadcast();
}
});
}
//åé广æ
private void sendTestBroadcast()
{
Intent mIntent = new Intent(ACTION_NAME);
mIntent.putExtra("strData", "åé广æï¼å¨è¿éä¼ éæ°æ®");
sendBroadcast(mIntent);
}
private BroadcastReceiver myReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(action.equals(ACTION_NAME)){
Toast.makeText(Test.this, "æ¥æ¶æµè¯", 200);
}
}
};
//注å广æ
public void registerBoradcastReceiver(){
IntentFilter myIntentFilter = new IntentFilter();
myIntentFilter.addAction(ACTION_NAME);
registerReceiver(myReceiver, myIntentFilter);
}
}
温馨提示:答案为网友推荐,仅供参考