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方法就可以了


你可能感兴趣的:(application,Class)