Androidのプログラミング – 投稿 10: アクティビティのライフサイクル

また、原則どのような活動をしています, その配列とあまりに活動. 活動は、Androidアプリケーションの非常に非常に重要な部分です, したがって、あなたは知っているし、その活動について知っておく必要がある必要があります. このようなサイクルの活動の行動、私たちは活動のライフサイクルを呼び出します.

[qads]

activity_lifecycle

上記の動作を説明するための写真です 1 アクティビティ. アクティビティが開放されたとき、それは、関数呼び出しを向けるだろうのonCreate (それを作る機能), ONSTARTが続きます, onResume. アクティビティ機能後onResumeが正式に動作し、我々はクリックボタンアクティビティとしてで操作することができます,…

  • OnPause関数がで呼び出されます 2 TH後で:
    +/ あなたが活動を開くが、ダイアログなどの場合には, 別の活動の上に現在の活動は依然として活動の他の部分を参照してください。. Dialogはアクティビティダイアログとして既存に適用され、現在の支出には適用されません。.
    +/ あなたが最近使ったアプリの一覧からアプリまたは他の他のActiivtyを開くと. この関数が呼び出され、すぐにonPauseはその後OnStop呼ぶとき.

  • この休止状態から活動に移動することができます 3 異なる状態:
    +/ ダイアログが失われたときにコールバック関数は、onResumeが正常に実行戻ります
    +/ 私たちは活動と呼ばれる別のダイアログを呼び出すことはありませんときOnStopを関数の呼び出し. すなわち、この活動から活動を呼ばれるか、再度それを見ずに、それを上書きすることができ、特定のプログラムを持っており、それがオーバー呼び出します 2 この関数はonPauseとOnStopです. 活動の状況に言及するときOnStopが停止しています.
    +/ アプリは状態に移し、コールバック関数の処理が殺したのonCreate. RAMの量と場所がない必須のシステムがプログラムを強制終了すると、このケースが発生します, 活性は、現時点で使用されていません.

  • 停止状態から, すなわちコールの後でもありOnStop 3 可能性.
    +/ あなたは、その電流をオーバーライドし、現在のプログラムや活動をオフにします, それは、関数をコールバックされますonReStart, その後ONSTART呼び出します, onResumeと戻って通常の活動へ.
    +/ アプリは殺した状態のプロセスに移し、, 同上.
    +/ OnDestroyするために呼び出すとキャンセルアクティビティ, 活動は、あなたが原因でRAMか何かエラーの不足のために、システムをオフにオフにしたりするときに発生します.

理論は本当に想像するのは容易ではありません, あなたが新しいプロジェクトを作成し、追加の練習を作成します 2 新しいアクティビティ. つまり私たちが持っています 3 アクティビティオフライン.

アンドロイド・アクティビティのライフサイクル-1

特に、第二の活動は、ダイアログで表示されます, これを行うには, AndroidManifestを次のようにファイルを編集します:

<activity
android:name=".SecondActivity"
android:theme="@style/Theme.AppCompat.Dialog"></activity>

主な活動インターフェースは次のようになります。. 我々は持っています 2 ダイアログとアクティビティを表示するためのボタン. そこから私たちは何が起こるか見ることになります.

アンドロイド・アクティビティのライフサイクル-2

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.nguyenvanquan7826.tut9activityliftcycle.MainActivity">

    <Button
        android:id="@+id/btnShowDialog"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Show Dialog" />

    <Button
        android:id="@+id/btnShowActivity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="32dp"
        android:text="Show Activity" />
</LinearLayout>

フォロー, MainActivityで.

package com.nguyenvanquan7826.tut9activityliftcycle;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        System.out.println("Main - onCreate");

        setContentView(R.layout.activity_main);

        connectView();
    }

    private void connectView() {
        findViewById(R.id.btnShowDialog).setOnClickListener(this);
        findViewById(R.id.btnShowActivity).setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.btnShowDialog:
                showDialog();
                break;
            case R.id.btnShowActivity:
                showActivity();
                break;
        }
    }

    private void showDialog() {
        startActivity(new Intent(this, SecondActivity.class));
    }

    private void showActivity() {
        startActivity(new Intent(this, ThirdActivity.class));
    }

    @Override
    protected void onStart() {
        super.onStart();
        System.out.println("Main - onStart");
    }

    @Override
    protected void onResume() {
        super.onResume();
        System.out.println("Main - onResume");
    }

    @Override
    protected void onPause() {
        super.onPause();
        System.out.println("Main - onPause");
    }

    @Override
    protected void onStop() {
        super.onStop();
        System.out.println("Main - onStop");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        System.out.println("Main - onRestart");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        System.out.println("Main - onDestroy");
    }
}

関数を作成するにはONSTART, onPause,… クイック, あなたは、書き込む位置にマウスを置きます, Ctrlキーを押しながら + ザ·, その後、次のように入力して機能する関数を記述する必要性を見つけます. 例えば、それはあなたの顎オープンCtrlキーonPauseを上書きしたいです + ザ·, 次に書きます onPause それが表示されます.

ここで結果をオフラインを示すビデオが.