タデウスMoshenskiy;
私は、Androidの新しいアーキテクチャコンポーネントについて読みました。だから、私はライフサイクルオブザーバーが何であるかを尋ねてみたかったと、なぜ我々は彼らが必要なのでしょうか?どのようなケースでは、便利なのですか?ご回答有難うございます!
Alokグプタ:
あなたは、アプリケーションのライフサイクルを取得するためにProcessLifecycleOwnerを使用することができますし、これらのイベントのオブザーバーとしてのクラスを追加します。あなたは、あなたのアプリケーションクラスでLifecycleObserverを実装できます。
public class MyApplication extends MultiDexApplication implements LifecycleObserver
@Override
public void onCreate() {
super.onCreate();
ProcessLifecycleOwner.get().getLifecycle().addObserver(this);
}
//あなたのアプリがバックグラウンドにフォアグラウンドになったときに観察するために、これらのライフサイクルメソッドを追加します。
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
public void appInResumeState() {
Toast.makeText(this,"In Foreground",Toast.LENGTH_LONG).show();
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
public void appInPauseState() {
Toast.makeText(this,"In Background",Toast.LENGTH_LONG).show();
}
//あなたのbuild.gradleファイルに次の行を追加します。
implementation 'android.arch.lifecycle:extensions:1.1.1'
//また、活動またはその断片は、
またLifecycleObserverを実装しているさまざまなコンポーネントを作成することで、コードの複雑さを軽減し、これらのコンポーネントに活動のライフサイクルを渡すためにそれらを使用することができます。この方法は、あなたが別のコンポーネントに巨大な複雑さを分割することができます。
class MainActivity : AppCompatActivity(), LifecycleObserver {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
ReduceComplexComponent().registerLifecycle(lifecycle)
}
}
class ReduceComplexComponent : LifecycleObserver{
registerLifecycle(lifecycle : Lifecycle){
lifecycle.addObserver(this)
}
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
fun resume() {
Log.d("OnResume","ON_RESUME")
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
fun pause() {
Log.d("onPause","ON_PAUSE")
}
}
この方法は、あなたが別のコンポーネント内のアクティビティまたはフラグメントのライフサイクルイベントに耳を傾けることができます。
また、手動での活動に私たちのライフサイクルインスタンスの現在の状態を取得することができますし、我々は、その使用して行うことができますgetCurrentStateを)(
A状態もありisAtLeast我々は現在のライフサイクル状態に対して比較を実行するために使用することができ()メソッドを