標籤:
在Activity中,註冊廣播的一個Demo。
總共分3步
第一步:定義一個BroadcastReceiver廣播接收類:
private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver(){ @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if(action.equals(ACTION_NAME)){ Toast.makeText(Test.this, "處理action名字相對應的廣播", 200); } } };
第二步:註冊該廣播:
public void registerBoradcastReceiver(){ IntentFilter myIntentFilter = new IntentFilter(); myIntentFilter.addAction(ACTION_NAME); //註冊廣播 registerReceiver(mBroadcastReceiver, myIntentFilter); }
第三步:觸發響應
mBtnMsgEvent = new Button(this); mBtnMsgEvent.setText("發送廣播"); mBtnMsgEvent.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent mIntent = new Intent(ACTION_NAME); mIntent.putExtra("yaner", "發送廣播,相當於在這裡傳送資料"); //發送廣播 sendBroadcast(mIntent); } });
最後附上完整代碼:
package my.yaner;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 = "發送廣播"; private Button mBtnMsgEvent = null; protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); //註冊廣播 registerBoradcastReceiver(); LinearLayout mLinearLayout = new LinearLayout(this); mBtnMsgEvent = new Button(this); mBtnMsgEvent.setText("發送廣播"); mLinearLayout.addView(mBtnMsgEvent); setContentView(mLinearLayout); mBtnMsgEvent.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent mIntent = new Intent(ACTION_NAME); mIntent.putExtra("yaner", "發送廣播,相當於在這裡傳送資料"); //發送廣播 sendBroadcast(mIntent); } }); } private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver(){ @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if(action.equals(ACTION_NAME)){ Toast.makeText(Test.this, "處理action名字相對應的廣播", 200); } } }; public void registerBoradcastReceiver(){ IntentFilter myIntentFilter = new IntentFilter(); myIntentFilter.addAction(ACTION_NAME); //註冊廣播 registerReceiver(mBroadcastReceiver, myIntentFilter); }}
android 廣播的使用