Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android實現界面實時更新

Android實現界面實時更新

編輯:Android開發實例

  利用的是Cursor+CursorAdapter實現界面實時更新的方法

  部分代碼如下:

  //一個觀察者
  private class MyContentObserver extends ContentObserver {
    
  public MyContentObserver() {
  super(new Handler());
  }
 
  @Override
  public void onChange(boolean selfChange) {
  super.onChange(selfChange);
  Log.i("DLA", "MyContentObserver onChange!");
  //處理數據更新回調
  refreshData();
  }
 
  }
 
  private void refreshData() {
  if (mCursor.isClosed()) {
  return;
  }
  //更新
  mCursor.requery();
  }
 
  //一個實現CursorAdapter的適配器
  private MyAdapter mAdapter;
 
  private Cursor mCursor;
 
  private MyContentObserver mObserver;
 
  @Override
  protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.list);
  setupViews();
  mCursor = getContentResolver().query(MyProvider.CONTENT_URI, sAppReadableColumnsArray,null, null, null);
  mObserver = new MyContentObserver();
  //注冊觀察者
  mCursor.registerContentObserver(mObserver);
  mAdapter = new MyAdapter(this, R.layout.list_item, mCursor);
  setListAdapter(mAdapter);
  }
 
  @Override
  protected void onDestroy() {
  super.onDestroy();
  if (mCursor != null) {
  mCursor.unregisterContentObserver(mObserver);
  mCursor.close();
  }
  }

  這樣實現後當MyProvider.CONTENT_URI對應的數據發生變化時都會調用觀察者的onChange方法,mCursor.requery()執行後listview就直接更新了。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved