Androidのアクティビティのライフサイクル:Onstopの問題()

Rehan:

だから、基本的にアプリケーションが最小化または停止されたとき、私は単純にデータベースにいくつかの値を変更されて何をしたいのか!

これは私のコードがどのように見えるかです:

  @Override
    protected void onStop() {
        super.onStop();

        FirebaseUser currentUser = mAuth.getCurrentUser();

        if(currentUser != null) {

            mUserRef.child("online").setValue(ServerValue.TIMESTAMP);

        }

    }

私は2番目の意図このメソッドへの移動は、その時点で呼び出されるだけでなく、すなわちstartActivity(startInten)を呼び出すときしかし、問題があります。私は、インターネット上で多くのことを研究しています。誰でもアプリが最小化されて殺されたときにのみ呼び出されるものとしているどのアクティビティライフサイクルメソッドを教えてもらえますしない場合は、同じアプリ内の他の活動への意図たち?

ありがとうございました。

user3783123:

あなたは、AndroidのライフサイクルライブラリからProcessLifecycleOwnerを使用して、アプリケーションクラスのonCreateメソッドからそれを観察する必要があります。

(kotlin中)サンプルコード:

ProcessLifecycleOwner.get().lifecycle.addObserver(object : LifecycleObserver{
        @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
        fun onStop(){
            val currentUser = mAuth.getCurrentUser()
            if (currentUser != null) {
                mUserRef.child("online").setValue(ServerValue.TIMESTAMP)
            }
        }
    })

(Javaで)サンプルコード:

ProcessLifecycleOwner.get().getLifecycle().addObserver(new LifecycleObserver() {
        @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
        public void onStop(){
            FirebaseUser currentUser = mAuth.getCurrentUser();
            if(currentUser != null) {
                mUserRef.child("online").setValue(ServerValue.TIMESTAMP);
            }
        }
        @OnLifecycleEvent(Lifecycle.Event.ON_START)
        public void onStart(){
            //onstart action here
        }
}

これが最後の活動はonStop呼ばれており、アプリがバックグラウンドに移動したり、殺されたときに呼び出さ取得する予定です。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=315912&siteId=1