Android 使用广播(BroadcastReceiver)传递数据
第一步:定义一个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); } });
—–最后附上完整代码:
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); }
}
更多相关文章
- InputStream输入流,读取数据实例
- Android api 数据的保存方式
- 【Java转Android】30. LitePal操作SQLite数据库
- Android SQLite数据库相关操作
- android 自带的contacts2.db数据库表结构脚本
- android 两个apk之间恭喜数据SharedPreferences
- Android Sqlite数据库中判断某个表是否存在的SQL语句
- Android JSON数据的解析与封装小Demo
- Android中使用SQLite数据库详解