ListAdapter 如何知道它何时分离?

How can a ListAdapter know when its Detached?

firstAdapter 如何知道它何时脱离 listView 的实际适配器(因为 secondAdapter 取代了它)?

final ListAdapter firstAdapter = new SimpleAdapter(
    this,
    new ArrayList<Map<String, Object>>(),
    android.R.layout.simple_list_item_1,
    new String[] {"AAA"},
    new int[] {android.R.id.text1}
);
final ListAdapter secondAdapter = new SimpleAdapter(
    this,
    new ArrayList<Map<String, Object>>(),
    android.R.layout.simple_list_item_1,
    new String[] {"AAA"},
    new int[] {android.R.id.text1}
);

setListAdapter(firstAdapter);

(new Timer()).schedule(new TimerTask() {
  @Override
  public void run() {
    Runnable r = new Runnable() {
      @Override
      public void run() {
        setListAdapter(secondAdapter);
      }
    };
    new Handler(Looper.getMainLooper()).post(r);
  }
}, 1000);

事实证明,第一个适配器在从 ListView 中注销时会收到通知,所以我使用的是:https://developer.android.com/reference/android/widget/Adapter.html#unregisterDataSetObserver(android.database.DataSetObserver)

@Override
public void unregisterDataSetObserver(DataSetObserver observer) {
  super.unregisterDataSetObserver(observer);

  Log.d("Adapter just got unregistered from the listView!");
  [...]
}