2013-10-06 34 views
23

ロック画面を有効にすると、次のようなことが起こりました。 このアクティビティでは、アンドロイド:screenOrientation = "landscape"がマニフェストに設定されています。 次に私の携帯電話でポートレートモードで以下のことを実行します。Androidのライフサイクルとロック/ロック解除のデバイス

  1. ユーザがアクティビティを開きます。
  2. onCreatedは()
  3. onResume()ユーザが 4.5 onPauseが呼び出されるデバイス()
  4. onDestroyを(LOCKS
  5. 呼ばれる)と呼ばれている()が呼び出される
  6. ONSTART呼ばれる
  7. onCreate()
  8. ONSTART(と呼ばれている)
  9. onResume(と呼ばれている) 8.5 onPauseが(と呼ばれると呼ばれている)
  10. ユーザが
  11. onResume(デバイスのロックを解除)
  12. onDestroy(と呼ばれる)
  13. のonCreate(と呼ばれる)は、
  14. ONSTART(と呼ばれる)onResume(
  15. 呼ばれる)と呼ばれています。

オーケー画面が消えた後、6,7,8が実行されている理由を、私は理解していない... 11、12、13、14が実行されている理由も、私は理解していません。 デバイスをロックしてロックを解除すると、奇妙なことが起こりますか?私は突然、活動のライフサイクルと混同しています。誰もがこれを明確にすることはできますか?

アタッシュケースコードとログMSG

package com.example.wf; 

import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Log.d("log", "oncreate"); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     Log.d("log", "onresume"); 
    }; 

    @Override 
    protected void onStart() { 
     super.onStart(); 
     Log.d("log", "onstart"); 
    }; 

    @Override 
    protected void onPause() { 
     super.onStart(); 
     Log.d("log", "onpause"); 
    }; 

    @Override 
    protected void onDestroy() { 
     Log.d("log", "ondestroy");  
     super.onDestroy(); 
    }; 
} 

ログのMSG(配向ロック肖像画又は錠剤)電話で

10-05 23:11:07.994: D/log(23810): oncreate 
10-05 23:11:07.994: D/log(23810): onstart 
10-05 23:11:07.994: D/log(23810): onresume 
// LOCK DEVICE 
10-05 23:11:19.957: D/log(23810): ondestroy 
10-05 23:11:20.007: D/log(23810): oncreate 
10-05 23:11:20.007: D/log(23810): onstart 
10-05 23:11:20.007: D/log(23810): onresume 
// UNLOCK DEVICE 
10-05 23:11:57.407: D/log(23810): onresume 
10-05 23:11:57.537: D/log(23810): ondestroy 
10-05 23:11:57.587: D/log(23810): oncreate 
10-05 23:11:57.587: D/log(23810): onstart 
10-05 23:11:57.587: D/log(23810): onresume 
+0

さまざまなオプションを試して2日以来これで苦労しています – suku

答えて

35

は、ロック画面は、肖像画です。したがって、デバイスがロックされると、デバイスは自動的にポートレートモード(6,7,8,9を発生)に切り替わります。デバイスがロック解除されると、Activityが表示されているときにonResume()が呼び出されますが、再びポートレートと現在のランドスケープでロックされているため、アクティビティは破棄され、ランドスケープで再作成されます。

+0

すてきな説明。 – Vicky

+0

完璧に説明されています。アクティビティは、ランドスケープモードの場合にのみロック/ロック解除で再作成されます。 – AnujDeo

2

アクティビティの再作成シナリオの過ぎて、アンドロイド:configChanges = "orientation"属性を使用して、アンドロイドマニフェストファイルによってアクティビティレベルで設定変更を処理できます。

+0

これは私にとってはうまくいかなかった – portfoliobuilder

関連する問題