相关疑难解决方法(0)

获取异常"IllegalStateException:onSaveInstanceState后无法执行此操作"

我有一个Live Android应用程序,从市场我收到了以下堆栈跟踪,我不知道为什么它发生在应用程序代码中没有发生,但它是由应用程序中的一些或其他事件引起的(假设)

我没有使用Fragments,仍然有FragmentManager的引用.如果任何机构可以对某些隐藏的事实进行一些说明以避免此类问题:

java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1109)
at android.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:399)
at android.app.Activity.onBackPressed(Activity.java:2066)
at android.app.Activity.onKeyDown(Activity.java:1962)
at android.view.KeyEvent.dispatch(KeyEvent.java:2482)
at android.app.Activity.dispatchKeyEvent(Activity.java:2274)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1668)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1112)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1112)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1112)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1112)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1112)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1112)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:1720)
at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1258)
at android.app.Activity.dispatchKeyEvent(Activity.java:2269)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1668)
at android.view.ViewRoot.deliverKeyEventPostIme(ViewRoot.java:2851)
at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2824)
at android.view.ViewRoot.handleMessage(ViewRoot.java:2011)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:132)
at android.app.ActivityThread.main(ActivityThread.java:4025)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:491)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
at dalvik.system.NativeStart.main(Native Method)  
Run Code Online (Sandbox Code Playgroud)

android illegalstateexception

350
推荐指数
10
解决办法
23万
查看次数

java.lang.IllegalStateException:无法在onSaveInstanceState之后执行此操作

我正在为我的应用程序使用支持库.在我的FragmentActivity中,我使用AsyncTask从Internet下载数据.在onPreExecute()方法中我添加了一个Fragment,在onPostExecute()方法中我再次删除它.当两者之间的方向发生变化时,我得到了上述异常.请看一下细节:

private class onFriendAddedAsyncTask extends AsyncTask<String, Void, String> {
    DummyFragment dummyFragment; 
    FragmentManager fm;
    FragmentTransaction ft;

@Override
protected void onPreExecute() {
    Log.v("MyFragmentActivity", "onFriendAddedAsyncTask/onPreExecute");
    dummyFragment = DummyFragment.newInstance();
    fm = getSupportFragmentManager();
    ft = fm.beginTransaction();
    ft.add(dummyFragment, "dummy_fragment");
    ft.commit();
}

@Override
protected void onPostExecute(String result) {
    Log.v("MyFragmentActivity", "onFriendAddedAsyncTask/onPostExecute");
    ft = fm.beginTransaction();
    ft.remove(dummyFragment);
    ft.commit();
}

@Override
protected String doInBackground(String... name) {
    Log.v("MyFragmentActivity", "onFriendAddedAsyncTask/doInBackground");
    ...
}
Run Code Online (Sandbox Code Playgroud)

我得到了以下LogCut:

01-05 23:54:19.958: V/MyFragmentActivity(12783): onFriendAddedAsyncTask/onPreExecute
01-05 23:54:19.968: V/DummyFragment(12783): onAttach
01-05 23:54:19.968: V/DummyFragment(12783): onCreate
01-05 23:54:19.968: V/MyFragmentActivity(12783): onFriendAddedAsyncTask/doInBackground
01-05 23:54:19.973: V/DummyFragment(12783): onCreateView …
Run Code Online (Sandbox Code Playgroud)

android exception android-asynctask illegalstateexception android-fragments

131
推荐指数
8
解决办法
15万
查看次数

IllegalStateException - 片段支持库

我的应用程序在一些用户设备上连续崩溃,但在Activity onStart方法中存在以下异常:

Caused by: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1299)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1310)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:541)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:525)
at android.support.v4.app.DialogFragment.show(DialogFragment.java:123) 
Run Code Online (Sandbox Code Playgroud)

我无法在我的模拟器中本地重现此错误.我在stackoverflow上找到了一些关于这个问题的问题: 这里这里

我已经尝试了建议的解决方案,即不允许onSaveInstance中的空包在片段或活动中.

但问题仍然存在.这是我遇到的唯一一个Crash报告,我不断得到它.

有没有人有工作的解决方案?

android illegalstateexception

19
推荐指数
1
解决办法
2万
查看次数

android中活动方向的奇怪行为改变

我在处理活动方向时面临非常奇怪的问题.让我解释一下这个场景

我有活动A和B.当前A处于横向模式,B(固定)处于纵向模式.如果用户改变A的方向,我正在保存活动状态A.我从A(风景)B(肖像),所以在那种情况下A在背景中,所以它应该调用onSaveInstance(bundle)方法.但它调用,当我回来时,然后A调用Resume()调用,我得到异常onResume()无法在onSaveInstance()之后调用A.

这是件事,让我讨厌.

更新编辑

如果两个活动都可以有任何方向.然后活动A onSaveInstance(bundle)在去B时没有调用,而且运行良好

android android-orientation android-activity

9
推荐指数
1
解决办法
373
查看次数