Android的编程 – 帖子 10: 活动的生命周期

什么活动也原则, 其顺序和活动过多. 活动是一个Android应用程序的一个非常非常重要的一部分, 因此,你应该知道和需要知道的关于其活动. 这种循环的活动行为,所以我们把它的活动的生命周期.

[qads]

activity_lifecycle

以上是说明了的动作 1 活动. 当活动被打开它会变成函数调用的onCreate (功能,使它), 其次是在onStart, onResume. 活动功能后onResume将正式运行,我们可以操纵的点击按钮活动,…

  • 的onPause函数被调用中 2 后来TH:
    +/ 当您打开一个活动,但作为对话, 的活动,是目前在另一个活动的顶部仍然看到活动的其它部分. 对话并不适用于适用于现有的活动对话框经常性支出.
    +/ 当您从最近用过的应用列表中打开一个应用程序或其他其他Actiivty. 当这个函数被调用,并立即将的onPause然后调用调用OnStop.

  • 从这个暂停状态可以移动到活动 3 不同的状态:
    +/ 回调函数返回onResume正常运行时,对话框会丢失
    +/ 呼叫的功能调用OnStop当我们不调用另一个对话框,称为活动. 这就是所谓的从该活动的活动还是有一定的程序可以将其覆盖,而无需再次看到它,它会调用过 2 功能的onPause和调用OnStop. 当提及到活动状态调用OnStop是停止.
    +/ 应用程序被转移到状态,回调函数过程杀害的onCreate. 当RAM和量没有制定强制性制度杀程序,就会出现此情况, 活性没有在当前时间使用的.

  • 从停止状态, 即呼叫后也调用OnStop 3 可能性.
    +/ 关闭当前程序或活动覆盖其目前的, 它会调用回调函数onReStart, 然后调用调用onStart, onResume和恢复正常活动.
    +/ 应用程序被转移到杀害地位进程, 同上.
    +/ 打电话的OnDestroy并取消活动, 活动当你关闭系统关闭或由于缺乏RAM什么错误发生.

该理论是真的不容易想象, 所以你创建新项目,并创造更多的实践 2 新活动. 也就是说,我们有 3 活动离线.

Android的活性生命周期-1

特别是第二活动将被显示为一个对话, 要做到这一点, 您可以编辑文件,如下所示AndroidManifest:

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

主要活动界面看起来像这样. 我们有 2 按钮显示对话和活动. 从那里,我们将看看,看看会发生什么.

Android的活性生命周期-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 将看到.

这里说明的结果离线视频.