データが変更されるたびに、インターフェイスを使用して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ライフサイクルについて、通知の登録・解除のポイントは?
以下にいくつかのシナリオを示します。
シナリオ 1:
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();
}
シナリオ 2:
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();
}
いずれかの実装を使用することをお勧めする理由を説明してください..または別のもの!