Notifications
每当数据更改时,我都会使用接口来更新片段。
public interface Notifications {
void register(ID id, Listener listener);
void unregister(ID id, Listener listener);
<T> void post(ID id, T value);
interface Listener<T> {
void onEvent(ID id, T value);
}
enum ID {
CustomersUpdated,
ProductsUpdated
}
}
关于Android Lifecycle,注册和注销通知的最佳点是什么?
以下是一些场景:
场景一:
public class ProductsListFragment extends BaseFragment
implements Notifications.Listener {
@Override
public void onStart() {
mAdapter.notifyDataChanged();
register(Notifications.ID.ProductsUpdated, this)
super.onStart();
}
@Override
public void onStop() {
unregister(Notifications.ID.ProductsUpdated, this)
super.onStop();
}
@Override
public void onEvent(Notifications.ID id, Object value) {
mAdapter.notifyDataChanged();
}
场景二:
public class ProductsListFragment extends BaseFragment
implements Notifications.Listener {
@Override
public void onResume() {
mAdapter.notifyDataChanged();
register(Notifications.ID.ProductsUpdated, this)
super.onResume();
}
@Override
public void onPause() {
unregister(Notifications.ID.ProductsUpdated, this)
super.onPause();
}
@Override
public void onEvent(Notifications.ID id, Object value) {
mAdapter.notifyDataChanged();
}
请解释为什么你会建议使用一个或另一个实现..或另一个!