很多人看到這個問題就會想到不就是用ContentObserver嗎
但ContentObserver並沒想象的那麼好,因為還沒做到精確到某一列 某一行的資料
所以會出現介面的頻繁重新整理,或者是頻繁的判斷改變資料的內容。
用application域和類似反向控制的做法就可以很好的解決這個問題
application類
view plain
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類
view plain
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類就可以了
view plain
appC = (ApplicationContext) getApplication();
appC.setMainHandler(flushHandler);
調用的時候更簡單 直接調用application的sendEmptyMessage方法就可以了
作者“獨自登高樓 望斷天涯路”