Android知识问题链接汇总(Activity篇)

427 阅读3分钟

基础知识

1、Activity的启动流程

2、onSaveInstanceState(),onRestoreInstanceState的调用时机

参考文章:
blog.csdn.net/cpcpcp123/a…

3、Activity的启动模式和使用场景

参考文章:
mobile.51cto.com/android-677…

4、Activity A跳转Activity B,再按返回键,生命周期执行的顺序

onStop需要在完全不可见的时候才会回到,完全不可见的时候,需要Activity B 在绘制出来,就是onResume之后,关键点就是要进入或者退出的Activity什么时候可见或者不可见。

参考文章:
blog.csdn.net/u013700040/…

5、横竖屏切换,按home键,按返回键,锁屏与解锁屏幕,跳转透明Activity界面,启动一个 Theme 为 Dialog 的 Activity,弹出Dialog时Activity的生命周期

参考文章:
www.sohu.com/a/402329833…

6、onStart 和 onResume、onPause 和 onStop 的区别

没啥区别,Activity不同的生命周期而已,不同的生命周期回掉里完成不同的事情,或者不同的情况触发各个生命周期的回调。

参考文章:
www.jianshu.com/p/32b5ab6da…

7、Activity之间传递数据的方式Intent是否有大小限制,如果传递的数据量偏大,有哪些方案

传 512K 以下的数据的数据可以正常传递。
传 512K~1024K 的数据有可能会出错,闪退。
传 1M以上的数据会报错:TransactionTooLargeException
考虑到 Intent 还包括要启动的 Activity 等信息,实际可以传的数据略小于 512K
不同厂商的厂商可能存在不同的定制

参考文章:
blog.csdn.net/u011033906/…
github.com/Moosphan/An…

8、Activity的onNewIntent()方法什么时候会执行

ActivityA已经启动过,处于当前应用的Activity堆栈时:
当ActivityA的LaunchMode为SingleTop时,如果ActivityA在栈顶,且现在要再启动ActivityA,这时会调用onNewIntent()方法。
当ActivityA的LaunchMode为SingleInstance,SingleTask时,如果已经ActivityA已经在堆栈中,那么此时会调用onNewIntent()方法。
当ActivityA的LaunchMode为Standard时,由于每次启动ActivityA都是启动新的实例,和原来启动的没关系,所以不会调用原来ActivityA的onNewIntent方法。
参考文章:
blog.csdn.net/Calvin_zhou…

9、显示启动和隐私启动

应用内显示启动:直接指定类名启动 应用外显示启动:直接指定包名、类名启动

应用内隐私启动:通过intentFilter启动。
应用外隐私启动:通过intentFilter启动,前提是对应的模块的export是true,在Android S上,已经强行要求在AndroidManifest.xml里面组件声明export属性。如果不同的应用都有同一个intentFilter,会出现弹窗让你选择跳转哪个应用,所以最好再指定要跳转的类名。

10、scheme使用场景,协议格式,如何使用

参考文章:
blog.csdn.net/Jason_996/a…

11、ANR的四种场景

ServiceTimeOut:前台服务20秒,后台服务200秒 BroadcastTimeOut:前台广播10秒,后台广播60秒 ContentProviderTimeOut:10秒 InputDispatchingTimeOut:5秒,Android R之前,发生InputDispatchingTimeOut的点击事情,并不是因为这次点击触发,而是之前的点击就已经出现卡住,需要定位到两次点击以前的点击事件,也就是10S前,Android R及之后,是一次前,也就是5S前。

12、onCreate和onRestoreInstance方法中恢复数据时的区别

参考文章:
blog.csdn.net/hxl51711627…

13、activty间传递数据的方式

纯粹的只是Activity之间的数据传递方式就是intent和setResultCode,类似于其他的静态变量、属性值、Setting值、SharedPreferences等,在其他的组件中,也可以使用。
参考文章:
blog.csdn.net/u012602304/…

14、跨App启动Activity的方式,注意事项

参考文章:
www.dazhuanlan.com/kaixinnvhai…

15、Activity任务栈是什么

参考文章:
blog.csdn.net/javazejian/…

16、Activity常用的标记位Flags

参考文章:
blog.csdn.net/yanjianyang…

17、Activity的数据是怎么保存的,进程被Kill后,保存的数据怎么恢复的

参考文章:\

www.imgeek.org/article/825…