先說一下我的需求,正在做公司的項目,個人中心界面A(一下簡稱A界面)是四個主界面的一個也就是底部導航中的最后一個,然后個人中心會有一個子界面設置以及修改個人信息的界面B(以下簡稱界面B),在B界面修改了信息之后跳回來之后不是需要A界面重新刷新界面嘛宇姚,當時圖簡單就直接在onReStart()重新請求數(shù)據(jù)匈庭。但是后來發(fā)現(xiàn)這樣會造成流量浪費,沒有修改信息的時候還是一樣會重新請求浑劳。所以就想到用廣播來優(yōu)化下阱持。好,話不多說魔熏,直接上代碼衷咽。
放在界面A(也就是需要接收廣播的界面)的初始化方法里面OnCreate()之類的
//注冊廣播
IntentFilter filter = new IntentFilter(界面B.action);
getActivity().registerReceiver(broadcastReceiver, filter);
扔在界面A里面當成個內(nèi)部類
BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
就是在這里做你想讓接收到廣播后讓界面A做的事情,就是這里,放心大膽的寫
}
};
放在界面B的聲明玩意兒的地方(action就是廣播接收著和廣播發(fā)送者的一個標識,隨便定義)
public static final String action = "hahahahahahhahahahaha";
然后就在界面B里你改變了什么東西完成之后發(fā)送下廣播蒜绽,代碼如下
Intent intent = new Intent(action);
intent.putExtra("data", "yes i am data");
sendBroadcast(intent);
我寫的就是個簡單的利用動態(tài)廣播的方法而已,如果是要看廣播是個啥的還是不要看啦,只是寫這放這,萬一有人需要但是一時又沒有想到這種方法呢.........萬一,萬一........直接按照我說的方式往里扔代碼就行了