Android开发:Activity的外部实时刷新问题
Android开发:Activity的外部实时刷新问题
很多人看到这个问题就会想到不就是用ContentObserver吗
但ContentObserver并没想象的那么好,因为还没做到精确到某一列 某一行的数据
所以会出现界面的频繁刷新,或者是频繁的判断改变数据的内容。
用application域和类似反向控制的做法就可以很好的解决这个问题
application类
- public class ApplicationContext extends Application {
- public static final int FLUSH_MAIN_ACTIVITY=1;
- private Handler main;
- public void setMainHandler(Handler handler){
- main=handler;
- }
- public void flushMain(){
- main.sendEmptyMessage(FLUSH_MAIN_ACTIVITY);
- }
- }
activity类里要实现的内部handler类
- Handler flushHandler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case ApplicationContext.FLUSH_MAIN_ACTIVITY:
- initData();
- initView();
- break;
- default:
- break;
- }
- super.handleMessage(msg);
- }
- };
activity里的OnCreate方法里只要设置好handler类就可以了
- appC = (ApplicationContext) getApplication();
- appC.setMainHandler(flushHandler);
调用的时候更简单 直接调用application的sendEmptyMessage方法就可以了
评论暂时关闭