Android面试题集:以前烂大街的四大组件-Activity,面试重提这些知识点你还记得吗?

前言

虽然有很多面试的文章里都有这些题目,但是我每次在看的时候,总是会觉得有些分散,复习的时候还要重新去找到对应的文章,所以我就想着自己来整理一下,并且把题目给分一下类型;自己整理可以帮助我复习的同时还可以巩固一遍;这次主要是4大组件相关,后续我会继续整理,觉得有帮助的可以点个赞。

今天先分享的是关于Activity的面试题:

描述一下Activity 生命周期?

  • onCreate() Activity第-次被创建的时候调用,一些初始化操作可以在这里完成。
  • onStart() 这个方法在Activity 由不可见变为可见的时候调用。
  • onResume() 这个方法在Activity 准备好和用户进行交互的时候调用。此时的Acivity一定位于返回栈的栈顶,并且处于运行状态。
  • onPause() 这个方法在系统准备去启动或者恢复另-个Activity的时候调用。
  • onStop() 这个方法在Activity 完全不可见的时候调用。它和onPause()方法的主要区别在于,如果启动的新Activity 是一个对话框式的Activity,那么onPause()方法会得到执行,而onStop()方法并不会执行。
  • onDestroy() 这个方法在Activity被销毁之前调用,之后Activity的状态将变为销毁状态。
  • onRestart 这个方法在Activity由停止状态变为运行状态之前调用,也就是Activity被重新启动了。

生命周期:为了巩固记忆,画了一遍。

 

Activity之间跳转时的生命周期

 

A Activity 打开 B Activity 时都有哪些生命周期回调?

A.onPause -> B.onCrete -> B.onStart -> B.onResume -> A.onStop

这样回答只是及格,因为仅在 B Activity 的 launchMode 为 standard 或者 B Activity 没有可复用的实例时是这样的。

当 B Activity 的 launchMode 为 singleTop 且 B Activity 已经在栈顶时(一些特殊情况如通知栏点击、连点),此时只有 B 页面自己有生命周期变化:

B.onPause -> B.onNewIntent -> B.onResume

当 B Activity 的 launchMode 为 singleInstance ,singleTask 且对应的 B Activity 有可复用的实例时,生命周期回调是这样的:

A.onPause -> B.onNewIntent -> B.onRestart -> B.onStart -> B.onResume -> A.onStop -> ( 如果 A 被移出栈的话还有一个 A.onDestory)

Activity的启动模式

有4种启动模式:

  • standard 标准模式
  • singleTop 栈顶复用模式
  • singleTask 栈内复用模式
  • singleInstance 单例模式

标准模式:每次启动时,都会创建一个新的实例在栈顶
栈顶复用模式:如果需要新创建的实例就在栈顶,那么就不会去重建,而是重用,否则就重新创建。
栈内复用模式:如果实例在当前栈中已经存在,就会将当前实例上面的其他实例都移除栈。
单例模式:直接创建一个新的栈并且创建实例放在栈中。

使用方

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值