发送一个动态的广播

动态广播:

用来发送信息,提示界面内容发生了改变。

1、

发送广播:(在需要提示内容改变的地方添加)
Intent intent = new Intent();
intent.setAction("com.tmlh.sender.loadheadphoto");
sendBroadcast(intent);

2、

接收广播:
MyReceiver1 receiver1; // 注册广播

receiver1 = new MyReceiver1();
IntentFilter filter1 = new IntentFilter();
filter1.addAction("com.tmlh.sender.loadheadphoto");
Module3NewTab4My.this.registerReceiver(receiver1, filter1);

public class MyReceiver1 extends BroadcastReceiver {
// 自定义一个广播接收器
@Override
public void onReceive(Context context, Intent intent) {
//在这里写,要去执行的动作
mPhotoIV.setImageBitmap(useTheImage(path + "face.jpg"));
}
}

//销毁广播,防止消耗过多的内存
@Override
protected void onDestroy() {
unregisterReceiver(receiver1);
super.onDestroy();
}

}


详细讲解:

1、发送广播,表示需要其它界面更新内容。按照上面代码写就可以了。

2、存在问题就是代码给了不知道代码应该写在哪里。下面举一个我实际项目中的例子,用来参考上面那个代码写在哪里的逻辑。

public class AssessFragment extends BaseFragment {
private FrameLayout assess_frame;
private RelativeLayout consult;
private RelativeLayout assess;
private RelativeLayout apply;
private TextView top_title;
private ImageView searchBtn;
private ImageView prompt_iv;
private boolean isPrompt;
public static boolean hasChannged = false;
private ImageView icon_apply;
MyReceiver1 receiver1; // 注册广播
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.assess_fragment, container, false);
}


@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);


init();
}


private void init() {
hasChannged  = true;
searchBtn = (ImageView) findViewById(R.id.searchBtn);
searchBtn.setVisibility(View.GONE);
top_title = (TextView) findViewById(R.id.top_title);
top_title.setText("申报评估");
consult = (RelativeLayout) findViewById(R.id.consult);
assess = (RelativeLayout) findViewById(R.id.assess);
apply = (RelativeLayout) findViewById(R.id.apply);
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
Activity activity = getActivity();
if (activity == null)
return;
switch (v.getId()) {
case R.id.thumbnailPannel:
if (activity instanceof MainActivity)
((MainActivity) activity).toggle();
break;


case R.id.consult:
getFragmentManager().beginTransaction().replace(R.id.content_frame, new ContentFragment()).commit();
// tintManager.setStatusBarTintColor(getResources().getColor(R.color.title_background));
break;
case R.id.assess:
break;
case R.id.apply:
if (!MRUtility.checkLogState(getContext(), 2))
break;
PrefUtils.setBoolean(getActivity(),"qushiyong",false);
// startActivity(new Intent(getActivity(), com.hyphenate.chatuidemo.ui.LoginActivity.class));
LoginUtils.registerAndloin(getActivity());


PrefUtils.setBoolean(getContext(), "isUnRead", false);
icon_apply.setImageResource(R.drawable.icon_sb_non_hdpi);
break;
}
}
};


prompt_iv = (ImageView) findViewById(R.id.prompt_iv);
icon_apply = (ImageView) findViewById(R.id.icon_apply);


if (PrefUtils.getBoolean(getActivity(), "isUnRead", false)) {
icon_apply.setImageResource(R.drawable.info_come);
} else {
icon_apply.setImageResource(R.drawable.icon_sb_non_hdpi);
}


prompt_iv.setVisibility(View.GONE);
consult.setOnClickListener(listener);
assess.setOnClickListener(listener);
apply.setOnClickListener(listener);
findViewById(R.id.thumbnailPannel).setOnClickListener(listener);


assess_frame = (FrameLayout) findViewById(R.id.assess_frame);


getChildFragmentManager().beginTransaction().replace(R.id.assess_frame, new EvaluationFragment()).commit();


receiver1 = new MyReceiver1();
IntentFilter filter1 = new IntentFilter();
filter1.addAction("com.corporatepioneer.android.activity.ECChatActivity");
getActivity().registerReceiver(receiver1, filter1);
}


@Override
public void onResume() {
super.onResume();
if (hasChannged) {
hasChannged = false;
CircleImageView headIcon = (CircleImageView) findViewById(R.id.userBtn);
UserInfo userInfo = UserManager.getUserManager().getCurrentUserInfo();
if (userInfo == null) {
headIcon.setImageResource(R.drawable.default_avatar);
} else {
ImageLoader.getInstance().displayImage(userInfo.getHeadImage(), headIcon,
ImageLoaderHelper.mAvtarOptions);
}
}
}


public class MyReceiver1 extends BroadcastReceiver {
// 自定义一个广播接收器
@Override
public void onReceive(Context context, Intent intent) {
// loadHeadPhoto();
// setHeadPhoto();
//在这里写,要去执行的动作
if (PrefUtils.getBoolean(getActivity(), "isUnRead", false)) {
icon_apply.setImageResource(R.drawable.info_come);
} else {
icon_apply.setImageResource(R.drawable.icon_sb_non_hdpi);
}
}
}




@Override
public void onDestroy() {
getActivity().unregisterReceiver(receiver1);
super.onDestroy();
}
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值