解决dialogfragment在锁屏后建立不能建立问题IllegalStateException: Can not perform this action after onSaveInstanceState

今天使用Fragment的时候,出现了这个错误 IllegalStateException: Can not perform this action after onSaveInstanceState:

  1. E/AndroidRuntime(12747): Caused by: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
  2. at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1314)
  3. at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1325)

是在使用FragmentTransition的 commit方法添加一个Fragment的时候出现的,后来在官网找到了相关的

说明:http://developer.android.com/reference/android/app/FragmentTransaction.html#commitAllowingStateLoss()

public abstract int commitAllowingStateLoss ()

Added in API level 11

Like commit() but allows the commit to be executed after an activity‘s state is saved. This is dangerous because the commit can be lost if the activity needs to later be restored from its state, so this should only be used for cases where it is okay for the UI state to change unexpectedly on the user.

大致意思是说我使用的 commit方法是在Activity的onSaveInstanceState()之后调用的,这样会出错,因为

onSaveInstanceState方法是在该Activity即将被销毁前调用,来保存Activity数据的,如果在保存玩状态后

再给它添加Fragment就会出错。解决办法就是把commit()方法替换成 commitAllowingStateLoss()就行

了,其效果是一样的。

时间: 2024-10-13 08:00:53

解决dialogfragment在锁屏后建立不能建立问题IllegalStateException: Can not perform this action after onSaveInstanceState的相关文章

解决IllegalStateException: Can not perform this action after onSaveInstanceState:

今天做项目中的支付宝功能,是在fragment中做的,在支付成功后,想切换到支付成功的页面. 结果就报错了IllegalStateException: Can not perform this action after onSaveInstanceState: 在网上找了下解决方案,将commit改成了 commitAllowingStateLoss()就没问题了,贴出原帖地址http://www.ablanxue.com/prone_7000_1.html,参考. 今天使用Fragment的时

解决IllegalStateException: Can not perform this action after onSaveInstanceState

extends:http://blog.csdn.net/ranxiedao/article/details/8214936 , http://blog.csdn.net/top_code/article/details/12614571 今天使用Fragment的时候,出现了这个错误 IllegalStateException: Can not perform this action after onSaveInstanceState: E/AndroidRuntime(12747): Cau

IllegalStateException: Can not perform this action after onSaveInstanceState 错误解决方法

使用handler 更新主activity中的碎片fragment是在使用FragmentTransition的 commit方法添加一个Fragment的时候报IllegalStateException: Can not perform this action after onSaveInstanceState. 问题原因: 因为 onSaveInstanceState方法 是在该Activity即将被销毁前调用,来保存Activity数据的,如果在保存完状态后再用commit方法给它添加Fr

WEB认证苹果手机锁屏后出现断开WI-Fi的现象和解决

苹果当手机使用WEB认证时,手机锁屏解锁后,WIFI将断开,用户将离线.是什么导致这个问题? 现象分析: 苹果当手机连接到WEB认证的WIFI时,苹果手机会发送WIFI连接检测请求,无线控制器在拦截检测请求后重定向到认证页面.这个过程苹果会认为这个WIFI是一个受监管的WIFI. 从苹果手机端,用户在连接WIFI后会自动弹出认证页面进行WEB认证.用户锁定苹果电话后,苹果系统将自动检测WIFI流量,因为锁定屏幕上没有流量,加上苹果认为这是一个受监管的WIFI,因此它将自动断开与WIFI的连接.

实现:编辑短信,按power键锁屏后,再点亮屏幕,进入的还是编辑短信界面,按返回键才会进入解锁界面。

描述:在编辑短信界面按电源键锁屏后,重新按电源键点亮屏幕,并没有进入到锁屏界面而是在编辑短信界面,此时短信界面悬浮与锁屏界面之上,这时按返回键关闭编辑短信界面,回到锁屏界面,是如何实现的呢,只需要在需要实现该功能的界面(Activity)中的onCreate()方法中setContentView()方法之前添加以下代码: // set this flag so this activity will stay in front of the keyguard int flags = WindowM

【Android】如何实现Android程序在手机锁屏后继续运行

最近笔者在做一个功能,就是实现Android程序在锁屏后可以继续运行,笔者在网上查了一些资料,现在整理出来,希望能够对你有所帮助. 1.如何监听屏幕锁屏 监听屏幕锁屏可以通过如下方式来实现,直接通过代码来判定,或通过监听器来实现 1)通过代码来判定屏幕的锁屏状态 可以通过PowerManager的isScreenOn方法,代码如下: PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);

解决Can not perform this action after onSaveInstanceState

以下为错误日志--------start-------- 01-08 23:43:19.622: E/AndroidRuntime(961): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=100, result=-1, data=Intent { }} to activity {com.biggod/com.biggod.activity.MainActivity}: jav

解决横屏下锁屏,再次解锁界面显示异常-一屏下显示重复两个界面

该问题复现描述: 界面横屏状态下进行锁屏,并保持横屏状态,再次解锁时,界面显示异常,一屏显示重复两个界面.如下图: 解决方式:修改当前界面所在的Activity,在AndroidManifest.xml中,activity节点下,去除android:configChanges属性中screenSize值.

Can not perform this action after onSaveInstanceState 解决办法

报错 java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1360) at android.support.v4.app.FragmentManagerImpl.popBackStackImmediate(Frag