“某项操作发生引起数据变化”我没有理解错的话,可以用观察者模式去处理,因为他是一个操作引发另一个操作嘛,而且这样做也比较简单,省心。
首先注册数据监听:
getContentResolver().registerContentObserver(Uri uri, boolean notifyForDescendents, ContentObserver observer) ;
ContentObserver 在发生改变后接受回调,你可以把更新ListView代码放到这里面:
private ContentObserver mObserver = new ContentObserver(new Handler()) {
@Override
public void onChange(boolean selfChange) {
// 重新查询数据
...
// 更新ListView1
listView1.notifyDataSetChanged();
// 更新ListView2
listView2.notifyDataSetChanged();
}
}
通知ListView更新数据:
getContentResolver().notifyChange(Uri uri, null, false);
上面只是做了思路解释,实际实现还得靠你自己,你也可以参考我的项目
PS: 感谢 @dabaooline 提醒