0
ライフサイクルライブラリを使用しているアプリがありますが、「異なるライフサイクルの同じオブザーバを追加できません」というIllegalArgumentExceptionが表示されます私が安全だと思ったonCreateのオブザーバーを追加してください。私のオブザーバーのほとんどは、オブザーバーがリサイクルされていないので、ここでは問題にはならないと思われる匿名のクラスによって追加されます。Androidライフサイクルライブラリ:異なるライフサイクルの同じオブザーバを追加できません
private GpsState gpsState;
void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getLifecycle().addObserver(gpsState);
gpsState.observe(this, (state) -> {
// ...
});
}
この例でGpsState
は、GPSの現在の状態を提供するために、LiveData
を拡張しON_RESUME状態に達したときに特定の値を更新することができるようにLifecycleObserver
を実装する:一つはthis
を使用しています。
私は間違っていると思いますか?
非常に近いですが、空ではありませんが、コンパイラに同じインスタンスを再利用させる静的オブジェクトにのみアクセスしていました。 – TheHebrewHammer