AndroidStudioのケーステストアクティビティのライフサイクル
目次
1つは、アクティビティを認識する
1.活動のライフサイクルを知る
活動ライフサイクルの7つの方法と4つの状態:
- 画面の前景(現在のタスクスタックの一番上)にあるときは、アクティブな状態にあり、表示され
活动状态或者运行状态
、;と呼ばれるユーザーと対話します。 - アクティビティが別の透過的なアクティビティまたはダイアログスタイルのアクティビティでカバーされている場合。このときの状態をと呼び
暂停状态(paused)
ます。それはまだウィンドウマネージャーに接続されており、システムはその内部状態を維持し続けるので、それはまだ表示されていますが、フォーカスを失い、ユーザーと対話できません。 - アクティビティが別のアクティビティによって完全にカバーされている場合、そのアクティビティはと呼ばれ
停止状态(stoped)
、すべての状態およびメンバー情報を保持します。ただし、表示されなくなったため、ウィンドウは非表示になり、システムメモリを他の場所で使用する必要がある場合、停止したアクティビティは強制的に終了します。 - アクティビティがシステムによって強制終了されてリサイクルされる
断开状态(killed)
か、開始されない(アクティビティが一時停止されている場合)か停止されると、システムはメモリからアクティビティを削除できます。Androidシステムは、次の2つの方法でアクティビティを削除します。終了するか、プロセスを直接終了します。今回、アクティビティがユーザーに表示されたら、アクティビティを再起動して前の状態にリセットする必要があります)。
activity的状态转换时会选择性的调用以下方法:
void onCreat(Bundle saveIntanceState)
void onStart()
void onRestart()
void onResume()
void onPause()
void onStop()
void onDestroy()
重写activity中的几个方法:
public class Activity extends ApplicationContext{
void onCreat(Bundle saveIntanceState);
void onStart();
void onRestart();
void onResume();
void onPause();
void onStop();
void onDestroy();
}
2.アクティビティのライフサイクルプロセス
4つの州
- ランニング
- 一時停止状態(一時停止)
- 停止
- 切断状態(強制終了)
7つの方法:
1、onCreat
2、onStart
3、onRestart
4、onResume
5、onPause
6、onStop
7、onDestroy
フローチャート
次に、テストのライフサイクル
1.ヘルプドキュメントをダウンロードします
SDKマネージャーで見つけましたがdocumentation for Android SDK
(説明は省略され
ています。操作する画像を参照してください)、見つかりません。Baiduを通じて、AndroidStudioの新しいバージョンが以前のバージョンと異なることを知っています。
2.アクティビティジャンププロセスのライフサイクル
- 別のアクティビティを開始して、2つのアクティビティのライフサイクルを表示する
- Bactivityはダイアログボックスの形で存在します
<activity android:name=".demoActivity"
android:theme="@style/Base.Theme.Appcompat.Diolog">
</activity>
3.水平画面と垂直画面を切り替えるライフサイクル
水平画面と垂直画面を切り替えると、アクティビティのライフサイクルは次のようになります。アクティビティは破棄された後に再作成されます。
要件1
デフォルトでは(android:configChanges属性はありません)。
- 垂直スクリーンカット水平スクリーンは、現在のアクティビティを破棄した後、新しいアクティビティインスタンスを作成します。
- 水平画面を垂直画面に切り取ります。現在のアクティビティを破棄した後、新しいアクティビティインスタンスを作成します。新しいアクティビティインスタンスはすぐに破棄され、新しいアクティビティインスタンスが作成されます。インスタンスを1つだけ作成する場合は、構成できます
android:configChangs="orientation"
この状況の発見を防ぐために、アクティビティ構成xmlファイルに属性を追加する必要があります
android:configChanges="keyboardHidden|orientation|screenSize"
要件2は
デフォルトです(android:configChanges属性はありません)。
- 垂直画面は水平画面を切り取り、現在のアクティビティを破棄した後に新しいアクティビティインスタンスを作成します
- 水平画面を垂直画面に切り取ります。現在のアクティビティを破棄した後、新しいアクティビティインスタンスを作成します。新しいアクティビティインスタンスはすぐに破棄され、新しいアクティビティインスタンスが作成されます。インスタンスを1つだけ作成する場合は、構成できます
android:configChangs="orientation"
android:screenOrientation="landspace"//横向模式
android:screenOrientation="portrait"//竖向模式