一般系统级,应用之间使用broadcastreceiver,
不需要系统级的应用广播,只需要在APP内部发送接收广播,保证安全性就用LocalBroadcastManager。
发送广播, LocalBroadcastManager用的单例模式,getInstance获取对象即可调用发送 注册等;使用完成也要取消注册。
Intent intent = new Intent("jerry"); intent.putExtra("change", "yes"); LocalBroadcastManager.getInstance(getApplicationContext()).sendBroadcast(intent);
注册接收器
private void registerReceiver(Activity activity) { LocalBroadcastManager broadcastManager = LocalBroadcastManager.getInstance(activity); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("jerry"); broadcastManager.registerReceiver(mAdDownLoadReceiver, intentFilter); } private BroadcastReceiver mAdDownLoadReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String change = intent.getStringExtra("change"); if ("yes".equals(change)) { // 这地方只能在主线程中刷新UI,子线程中无效,因此用Handler来实现 new Handler().post(new Runnable() { public void run() { //在这里来写你需要刷新的地方 //例如:testView.setText("恭喜你成功了"); onLoading(); } }); } } }; /** * 注销广播 */ @Override public void onDetach() { super.onDetach(); broadcastManager.unregisterReceiver(mAdDownLoadReceiver); }