先说一下我的需求,正在做公司的项目,个人中心界面A(一下简称A界面)是四个主界面的一个也就是底部导航中的最后一个,然后个人中心会有一个子界面设置以及修改个人信息的界面B(以下简称界面B),在B界面修改了信息之后跳回来之后不是需要A界面重新刷新界面嘛,当时图简单就直接在onReStart()重新请求数据。但是后来发现这样会造成流量浪费,没有修改信息的时候还是一样会重新请求。所以就想到用广播来优化下。好,话不多说,直接上代码。
放在界面A(也就是需要接收广播的界面)的初始化方法里面OnCreate()之类的
//注册广播
IntentFilter filter = new IntentFilter(界面B.action);
getActivity().registerReceiver(broadcastReceiver, filter);
扔在界面A里面当成个内部类
BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
就是在这里做你想让接收到广播后让界面A做的事情,就是这里,放心大胆的写
}
};
放在界面B的声明玩意儿的地方(action就是广播接收着和广播发送者的一个标识,随便定义)
public static final String action = "hahahahahahhahahahaha";
然后就在界面B里你改变了什么东西完成之后发送下广播,代码如下
Intent intent = new Intent(action);
intent.putExtra("data", "yes i am data");
sendBroadcast(intent);
我写的就是个简单的利用动态广播的方法而已,如果是要看广播是个啥的还是不要看啦,只是写这放这,万一有人需要但是一时又没有想到这种方法呢.........万一,万一........直接按照我说的方式往里扔代码就行了
网友评论