Launcher Activity在开机时重启两次解决办法
来源:互联网 发布:2016nba数据库排名 编辑:程序博客网 时间:2024/05/26 22:07
今天在看log的时候发现,Launcher activity会被onDestroy掉一次,然后再重启。
可能原因猜测:
1.横竖屏切换
2.MCC MNC等Configuration改变引起的 MCC(移动国家码)和 MNC(移动网络码)
由于当时的Launcher设置为强制横屏了,应该是不会引起重启的。
对于Configuration改变系统会发一个android.intent.action.CONFIGURATION_CHANGED的广播
于是就做了一个广播接收器去检测是不是由于Configuration改变引起的(后来发现Launcher本身有监听这个广播)
果然发现MCC值由0(未定义)变为460(中国)
原因已经初步确定了,怎么才能让activity不重启呢?
既然是activity重启,那就先去看一下activity有什么属性可以防止重启....
运气实在是好,刚好有这么个属性:
android:configChanges=["mcc", "mnc", "locale", "touchscreen", "keyboard", "keyboardHidden", "navigation", "screenLayout", "fontScale", "uiMode", "orientation", "screenSize", "smallestScreenSize"]
官方的解释是这样的:
Lists configuration changes that the activity will handle itself. When a configuration change occurs at runtime, the activity is shut down and restarted by default, but declaring a configuration with this attribute will prevent the activity from being restarted. Instead, the activity remains running and its
method is called.onConfigurationChanged()
大致意思也就是说:
那些被列举的属性configuration改变时activity是否保存自己的状态。当应用发生了configuration改变,默认情况下activity将关闭并重启自身,但是如果定义了这个属性,activity将不必重启,它将保持运行状态同时调用onConfigurationChanged()方法。也就是说当不配置android:configChanges="mcc|mnc"时,当mcc或mnc的值发生改变的时候,会重启activity,并且onConfigurationChanged()不会被调用
果然配置了这个属性后Launcher Activity就不会在开机时候启动两次了。
- Launcher Activity在开机时重启两次解决办法
- 开机时如果有SIM卡,Launcher activity会启动两次
- launcher 开机设置
- 开机默认Launcher
- launcher开机死机
- 开机LAUNCHER设置
- Android 在闹钟开机时,如何解决开机动画没有播完就进入Launcher
- Activity在设置横屏时候会调两次onCreate
- 将自己launcher作为开机launcher
- No Launcher activity found!
- No Launcher activity found!
- No Launcher activity found!
- No Launcher activity found!
- No Launcher activity found!
- 关于android开发中编译时出现“No Launcher activity found!”的解决办法
- Activity执行两次问题
- Android开机第一个Launcher
- Android Launcher 会onCreate 两次的原因
- CATransition
- spark应用程序的运行架构
- deep_c++:构造函数——1
- Linux中crontab的坑爹环境变量问题
- Js生成(柱形/饼图)图表
- Launcher Activity在开机时重启两次解决办法
- DELPHI 把数据库中的数据转换成XML格式
- monkey log分析说明
- 推荐网站博客
- Aspose.word保存PDF时进行授权访问设置
- combobox联动
- java 接口
- com.sun.management.OperatingSystemMXBean引入出错
- xml修改后报错: java.lang.ClassCastException: android.widget.LinearLayout