Activity知识要点

1.Activity生命周期

生命周期有七个方法

onCreate() , onStart(), onResume() , onPause(), onStop(),onRestart(), onDestroy();

2.onStart()和onResume()/onPause()和onStop()的区别?

在这些方法中,onStart()方法处于可见但不处于前台,而onResume()处于可见且在前台,另外的两种方法和onStart和onResume()是相对应的,同理

3.Activity A启动另一个Activity B会回调哪些方法?如果启动的是一个Dialog呢?

1.在A启动B时,首先A会调用自己的onPause()方法,然后B调用onCreate()→onStart()→onResume()→A的onStop()方法

打开一个新Activity:

A的onPause() -->B 的Activity的onCreate()-->onStart()-->onResume()-->A的Activity的onStop()

2.启动的如果是对话框Dialog,则只会执行A的onPause()方法,而不会执行A的onStop()方法,这时候A只处于暂停状态还没有处于停止状态

A的Activity的onPause()-->B的onCreate()-->onStart()-->onResume()

4.onSaveInstanceState()方法?何时会调用?

这个方法在活动被回收的时候调用,用于保存活动的临时数据,在活动重建之后可以恢复数据

5.onSaveInstanceState()与onPause()的区别?

onSaveInstenceState()用于保存临时数据,而onPause()方法中用于保存持久化数据

6.配置改变时Activity的重建

在切换手机横竖屏时,Activity会被杀死重建,这个时候会用到我们上面讲的onSaveInstanceState()方法

会先调用onSaveInstanceState来保存切换时的数据,接着销毁当前的Activity,然后重新创建一个Activity,再调用onRestoreInstanceState恢复数据

7.Activity的四种启动模式?

1.standard 标准模式

 每当一个新的活动启动时,栈中都会创建一个新的实例,不管栈中是否存在此活动

2.singerTop 栈顶复用模式

启动活动时,如果发现活动在栈中且处于栈顶位置,则栈中不会创建新的实例,并回调onNewIntent(intent)方法。

3.singerTask 栈内复用模式

启动活动时如果活动在栈中存在,就不会重建,而是把此活动之前的栈顶活动全部出栈,让活动处于栈顶,如果不存在则创建新的实例

4.singerInstance 单实例模式

具有此模式的Activity只能单独位于一个任务栈中,且此任务栈中只有唯一一个实例。

8.如何启动其他应用的Activity?

Intent用于启动其他的活动,又分为显示启动和隐式启动,显示启动直接用活动名启动

隐式启动通过Manifest中的action和category信息去启动新的活动

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 【Android Activity】 什么是 Activity? 四大组件之一,通常一个用户交互界面对应一个 ac...
    Rtia阅读 9,263评论 3 18
  • Activity 一、四种形态 运行状态: 当 Activity 处于栈的顶层,可见,并可与用户进行交互 onRe...
    任教主来也阅读 5,790评论 1 10
  • Activity https://developer.android.com/guide/components/a...
    XLsn0w阅读 4,019评论 0 4
  • 瓶子是我的星座,我把这个名字给你了,我认为够意思的。 情不知其所起,一往而深。像所有闺蜜一样,我们了解彼此、熟悉彼...
    茗敏阅读 2,622评论 1 1
  • 在加入铃铛子简笔画之前,我的画画还停留在小学制作手抄报的阶段,之后就再也没有动过笔去画画了。偶然的机会在简书中看到...
    Struggle_4072阅读 1,274评论 1 1

友情链接更多精彩内容