之前写广播接收器都是写在Activity的内部的,觉得看起来很乱的感觉,毕竟广播也事和活动是同一级别的组件之一,哪儿能放在活动的里面啊,决定就来封装一下,发现居然没有思路,同事说用静态类,直接点就可以了,
但是静态类在内存中不会被回收,只有等程序结束后才会回收,所以决定用接口回调
接口回调在安卓中用的很多吧,这个不懂的可以自行搜索一下哈,就不普及基础了,
- 新建一个接口UpdateUIListenner.class
public interface UpdateUIListenner {
/**
* 更新UI
*/
void UpdateUI(String str);
}
- 新建一个BroadcastReceiver取名 MyReceiver
public class MyReceiver extends BroadcastReceiver {
UpdateUIListenner updateUIListenner;
@Override
public void onReceive(Context context, Intent intent) {
String key = intent.getStringExtra("key");
updateUIListenner.UpdateUI(key);
}
/**
* 监听广播接收器的接收到的数据
* @param updateUIListenner
*/
public void SetOnUpdateUIListenner(UpdateUIListenner updateUIListenner) {
this.updateUIListenner = updateUIListenner;
}
}
- 在