Android activity总结

本文详细介绍了Android activity的生命周期,包括onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()和onRestart()等方法的调用时机。此外,还讨论了activity的四种启动模式:Standard、SingleTop、SingleInstance和SingleTask,以及如何通过AndroidManifest和Intent设置启动模式。重点解析了不同启动模式下的行为差异和任务栈管理。" 130049272,10035150,XXX社会治理大数据平台建设方案,"['大数据', '政务综合服务平台', '社会治理', '信息资源整合']
摘要由CSDN通过智能技术生成

目录

1.activity生命周期

2.activity的启动方式


1.activity生命周期

(下图源网络)

 由图可知,activity生命周期包含7种方法。

    onCreate():表示activity正在创建。我们可以在此方法完成一些初始化工作。此方法含有参数Bundle savedInstanceState,用        于恢复activity异常情况下被销毁时保存的信息。

    onStart():表示activity正在启动。这时activity已经可见,但不在前台,还无法与用户交互。

    onResume():此时activity可见,在前台,可交互。

    onPause():表示activity正在停止。可做数据存储,停止动画等不太耗时的操作。

    onStop():表示activity即将停止。可做稍微重量级的回收操作,如取消网络连接,但不能太耗时。

    onDestroy():表示activity即将销毁。这是activity生命周期最后的回调,可做资源释放和一些回收工作。

    onRestart():表示activity重新启动。activity由后台切换到前台,由不可见到可见。

activity根据具体情况调用不同的方法,下面是一些activity生命周期切换的情况。

注意:①当A活动启动B活动时,先执行A活动的onPause(),再执行B活动的oncreate(),onStart(),onResume(),再执行A的onStop()。返回时,先执行B的onPause(),再执行A的onRestart(),onStart(),onResume(),再执行B的onStop(),onDestroy().

②当活动打开新活动而不被完全覆盖不可见时,只调用onPause()方法,不会调用onStop().(例如新活动为透明主题)

当activity在异常情况下被终止时,系统会调用 onSaveInstanceState()来保存activity的状态,这个方法调用在onStop()前,与onPause()无既定先后顺序。activity被重新创建后,系统会调用onRestoreInstanceState()方法,并将onSaveInstanceState()保存信息通过Bundle对象作为参数传给onRestoreInstanceState()方法和onCreate()方法。onRestoreInstanceState()调用在onStart()之后。

2.activity的启动方式

     activity一共有4种启动方式:Standard,SingleTop,SingleInstance,SingleTask。有两种指定方式,第一种可通过AndroidMenifest 指定。

<activity android:name=".MainActivity"
          android:launchMode="singleTask">

第二种可通过在Intent设置标志位指定。

Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

当两种方式同时指定时,以后者指定方式启动。:

     ①Standard:标准模式,系统默认模式。每次启动一个activity都会新建一个实例。

     ②SingleTop:栈顶复用模式。启动一个activity先检查是否已有实例位于任务栈顶,有则复用,调用此实例的onNewIntent(),

        无则新建。(存在实例但不在栈顶依旧新建)

     ③SingleInstance:单实例模式。此模式的activity单独位于一个任务栈。

     ④SingleTask:栈内复用模式。启动一个activity时检查其任务栈内是否已存在实例(任务栈不存在时新建任务栈,新建实例),            如果存在则复用,调用其onNewIntent()方法,并将位于此实例顶部的activity出栈,把它调至栈顶。不存在则新建压入栈。

  标识activity任务栈名称的属性:android:taskAfffinity。默认为应用包名。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值