本项目中利用广播来实现对其他activity进行操作(刷新操作),或者进行activity之间的传值(查找功能)。
发送广播:
refresh.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { // 广播通知 Intent intent = new Intent(); intent.putExtra("username", search_name.getText().toString()); intent.setAction("action.refresh"); sendBroadcast(intent); } });
<span style="font-family: 微软雅黑, 宋体, Tahoma, Arial, Helvetica, STHeiti; background-color: rgb(255, 255, 255);">接收广播:</span>
开头
IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("action.refresh"); intentFilter.addAction("action.refreshUsers"); intentFilter.addAction("action.search"); registerReceiver(mRefreshBroadcastReceiver, intentFilter);
定义广播
// broadcast receiver private BroadcastReceiver mRefreshBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals("action.refreshUsers")||action.equals("action.refresh")) { searchname=""; reFreshList(); } if(action.equals("action.search")){ searchname=intent.getStringExtra("username"); reFreshList(); } } };
销毁广播
@Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(mRefreshBroadcastReceiver); }