歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android開發:Activity的外部實時刷新問題

Android開發:Activity的外部實時刷新問題

日期:2017/3/1 11:17:01   编辑:Linux編程

很多人看到這個問題就會想到不就是用ContentObserver嗎

但ContentObserver並沒想象的那麼好,因為還沒做到精確到某一列 某一行的數據

所以會出現界面的頻繁刷新,或者是頻繁的判斷改變數據的內容。

用application域和類似反向控制的做法就可以很好的解決這個問題

application類

  1. public class ApplicationContext extends Application {
  2. public static final int FLUSH_MAIN_ACTIVITY=1;
  3. private Handler main;
  4. public void setMainHandler(Handler handler){
  5. main=handler;
  6. }
  7. public void flushMain(){
  8. main.sendEmptyMessage(FLUSH_MAIN_ACTIVITY);
  9. }
  10. }

activity類裡要實現的內部handler類

  1. Handler flushHandler = new Handler() {
  2. @Override
  3. public void handleMessage(Message msg) {
  4. switch (msg.what) {
  5. case ApplicationContext.FLUSH_MAIN_ACTIVITY:
  6. initData();
  7. initView();
  8. break;
  9. default:
  10. break;
  11. }
  12. super.handleMessage(msg);
  13. }
  14. };

activity裡的OnCreate方法裡只要設置好handler類就可以了

  1. appC = (ApplicationContext) getApplication();
  2. appC.setMainHandler(flushHandler);

調用的時候更簡單 直接調用application的sendEmptyMessage方法就可以了

Copyright © Linux教程網 All Rights Reserved