android:name="xxxActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:launchMode="singleTask"
---launchMode为singleTask的时候,通过Intent启到一个Activity,如果系统已经存在一个实例,系统就会将请求发送到这个实例上,但这个时候,系统就不会再调用通常情况下我们处理请求数据的onCreate方法,而是调用onNewIntent方法
android:configChanges="xxx" 详解:
1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法
但是横竖屏切换时,禁止activity重新创建,android:configChanges="keyboardHidden|orientation" 有时候不起作用
但是,实际上很多手机上,这个根本不起作用。在低版本上,这个是可以起作用。在android 4.0 以上实际上这个是不起作用的。必须要加上screenSize。
android:configChanges="keyboardHidden|orientation|screenSize"
博客介绍了Android中Activity的属性配置,如launchMode为singleTask时,系统会将请求发送到已存在的实例上,调用onNewIntent方法。还详细讲解了android:configChanges属性在不同设置下,横竖屏切换时Activity生命周期的调用情况,指出在高版本系统中需加上screenSize才能禁止activity重新创建。
847

被折叠的 条评论
为什么被折叠?



