Launcher Activity在开机时重启两次解决办法

今天在看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 itsonConfigurationChanged() method is called.

大致意思也就是说:

那些被列举的属性configuration改变时activity是否保存自己的状态。当应用发生了configuration改变,默认情况下activity将关闭并重启自身,但是如果定义了这个属性,activity将不必重启,它将保持运行状态同时调用onConfigurationChanged()方法。也就是说当不配置android:configChanges="mcc|mnc"时,当mcc或mnc的值发生改变的时候,会重启activity,并且onConfigurationChanged()不会被调用

果然配置了这个属性后Launcher Activity就不会在开机时候启动两次了。

Launcher Activity在开机时重启两次解决办法

时间: 2024-08-05 02:54:03

Launcher Activity在开机时重启两次解决办法的相关文章

Launcher Activity在开机时重新启动两次解决的方法

今天在看log的时候发现,Launcher activity会被onDestroy掉一次.然后再重新启动. 可能原因推測: 1.横竖屏切换 2.MCC MNC等Configuration改变引起的 MCC(移动国家码)和 MNC(移动网络码) 因为当时的Launcher设置为强制横屏了.应该是不会引起重新启动的. 对于Configuration改变系统会发一个android.intent.action.CONFIGURATION_CHANGED的广播 于是就做了一个广播接收器去检測是不是因为Co

python出现AttributeError: module ‘xxx’ has no attribute ‘xxx’错误时,两个解决办法

运行python程序时,也许会出现这样的错误:AttributeError: module 'xxx' has no attribute 'xxx': 解决该错误有两种方法 1.手动安装该模块 2.检查文件名 这个方式看起来很傻,但是却是新手经常会犯的错,原因是因为自己的文件名称和要使用的模块重名了,只需要更改文件名即可. 原文地址:https://www.cnblogs.com/lijiejoy/p/9266005.html

修改/dev/shm的大小(含redhat6版本以上重启后失效解决办法)

常规处理方法: 1.编辑 /etc/fstab #vim /etc/fstab 修改前 :tmpfs /dev/shm tmpfs defaults 0 0 修改后:tmpfs /dev/shm tmpfs defaults.size=4g 0 0 2.重新mount /dev/shm #mount -o remount /dev/shm 正常情况,执行上边两部操作就会生效了 针对redhat 或者 centos 6版本以上的系统 重启后设置会失效,需要启动后执行mount -o remount

tomcat单独启动时闪退的解决办法,以及修改端口8080为80,

tomcat单独启动时闪退的解决办法: 点击" startup",马上就闪退了:原因一般都是没有配置%JAVA_HOME%和tomcat的环境变量造成的: 很简单: 在startup.bat那个文件下,编辑点进去之后,在最上边的echo off上面加上: SET JAVA_HOME=C:\Program Files\Java\jdk1.7.0_60 SET TOMCAT_HOME=C:\apache-tomcat-7.0.53 然后shutdown.bat里面也要加上这两句话: 然后重

Eclipse 安装 ADT 失败的两种解决办法 [Android Development Tooling]

原因 最近想在新装的 Win7 里搭建一下 Android 的开发环境,虽然现在有 Android Studio 了,不过还是习惯 Eclipse 一点.众所周知的原因,Eclipse 直接安装 ADT(Android Develepment Tooling) 插件是不行的,这里给出两种解决办法,我们的前提是要先安装 Google 的 翻[email protected]!墙工具 GoAgent . 一.使用 Proxy 由于直接访问是不行的,所以你可以使用 VPN 或者 GoAgent 做为

dedecms添加文章时提示标题为空,编辑文章时编辑器空白的解决办法

dedecms添加文章时提示标题为空,编辑文章时编辑器空白的解决办法 dedecms出现这个问题与代码无关,主要是和PHP的版本有关,用的PHP5.4,更换成PHP5.2之后就不会有这个问题了. 问题原因是:php5.4版本中htmlspecialchars在php5.4默认为utf8编码,gbk编码的字符串经过htmlspecialchars 转义后的中文字符串为空了,所以造成添加文章时提示"标题不能为空",编辑文章时编辑器内容空白. 解决的办法:标题不能为空修改dede/artic

Android:调用其他程序中的activity和Permission Denial: starting Intent 错误解决办法

今天想调试多个task中栈的情况,在测试程序中调用另一个程序的activity, 代码片段如下: [java] view plaincopy btnStartX=(Button)findViewById(R.id.btnStartX); btnStartX.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stu

20140509-MySQL导入脚本文件,插入数据时显示乱码的解决办法

20140509-MySQL导入脚本文件,插入数据时显示乱码的解决办法 打开CMD输入以下命令: mysql –u root –p 然后输入密码: 在导入脚本文件之前,对字符编码进行设置: charset gbk; 说明:上面的这条语句非常关键,这样不论你在cmd窗口,还是使用客户端输入中文,都能够正确保存了. 建议初学者不要使用SQLyog或者Navicat Premium等客户端连接工具.

MVC 使用ckfinder时提示客户端危险解决办法

MVC 使用ckfinder时提示客户端危险解决办法 在处理接收信息的Controller前面加   [ValidateInput(false)]形如:[HttpPost][ValidateInput(false)] public ActionResult GoodDetail(FormCollection form){return View();} 这种解决方法是把验证去掉了,对应网站安全性要求不高的(比如自己的后台)可以使用,论坛文本编辑器不建议