Activity生命周期

Activity是Android开发中最常用的组件。什么是Activity呢?可以简单地认为Activity就是一个界面,可以向用户展示结果并响应用户的输入请求。
在使用Activity时我们只需要继承framework里的Activity类(现在继承其他一些类比如FragmentActivity也可以,这些类可能实在support包中,这些类也都是对Activity功能的扩展),然后在manifest文件里注册该Activity就可以了,比如:

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

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.belows.maintest">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

其中在manifest文件中的

<intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

表示这个Activity是整个程序的入口,并当点击在Luancher中显示的程序图标时,启动的就是该Activity
那么一个Activity它在程序执行过程中的生命周期又是怎么样的呢?
这里写图片描述
这里写图片描述
当ActivityA启动后再ActivityA中,启动ActivityB,那么这两个Activity的生命周期又是怎样的呢?
首先是ActivityA的启动过程:
ActivityA onCreate->ActivityA onStart->ActivityA onResume
然后在ActivityA中启动ActivityB:
这时的生命周期是:ActivityA onPause->ActivityB onCreate->ActivityB onStart->ActivityB onResume->ActivityA onStop
也就是先会执行A的onPause方法再去启动ActivityB,按照我的理解就是在启动ActivityB之前,ActivityA应该有机会保存一些非常重要的数据(ActivityA有可能会被系统kill掉),而且应该有机会停掉一些比较消耗系统资源的操作(比如像动画等),这样在切换Activity时就能更流畅

上面是在正常操作下Activity的生命周期,当我们的Activity进入到后台后,系统由于内存紧张而将我们的Activity杀掉了,然后我们又操作重新回到之前的Activity(对用户来说是之前的Activity,但其实之前的Activity已经被杀掉了,所以系统需要重新创建,但新创建的Activity的状态应该和被杀掉的那个Activity的状态一致),整个过程Activity的生命周期又是怎样的呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值