日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState

發(fā)布時間:2023/12/18 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在使用Fragment的過程中,常常會遇到在Activity的onSaveInstanceState方法調(diào)用之后,操作commit或者popBackStack而導(dǎo)致的crash.
因為在onSaveInstanceState方法之后的操作狀態(tài)可能會丟失,因此Android framework默認會拋出一個異常.
對于commit方法來說,單純避免這個異常很簡單,使用commitAllowingStateLoss方法即可.但是popBackStack以及 popBackStackImmediate也都會檢查state(checkStateLoss),特別需要注意的是Activity的 onBackPressed方法

如果onBackPressed在onSavedInstanceState之后調(diào)用,那么就會crash.

onBackPressed的調(diào)用時機:

* targetSdkVersion <= 5,在onKeyDown中調(diào)用
* targetSdkVersion > 5,在onKeyUp中調(diào)用
onSavedInstanceState的調(diào)用時機(如果調(diào)用的話):

* 一定在onStop之前
* 可能在onPause之前,也可能在onPause與onStop之間
需要注意的是: onSavedInstanceState方法不一定會調(diào)用,只有在Activity因為某些原因而被Framework銷毀,并且之后還需要重新創(chuàng)建的情況,才需要調(diào)用(例如:旋屏,或者內(nèi)存不足而回收返回棧中的某些Activity)

舉例:
* Activity A在前臺時,屏幕逐漸變暗直至鎖屏,那么A的onSavedInstanceState會被調(diào)用
* Activity A start Activity B,Activity A的onSavedInstanceState會被調(diào)用
* Activity A因為返回鍵或者finish調(diào)用而返回到上一個界面,那么A的onSavedInstanceState不會被調(diào)用
因此,當(dāng)onBackPressed在onSavedInstanceState方法之后調(diào)用,就一定會crash.解決方法主要有兩種:

重寫Activity的onSavedInstanceState()方法,并且注釋掉super調(diào)用.
這種方法能避免crash,但是它會導(dǎo)致整個Activity的狀態(tài)丟失.以DialogFragment為例,正常情況下,顯示的 DialogFragment在旋屏Activity重新創(chuàng)建之后,不需要我們處理,Dialog會自動顯示出來(參見 DialogFragment.onStart()),但是注釋掉Activity的onSavedInstanceState()方法之 后,Fragment狀態(tài)丟失,Activity重新創(chuàng)建之后,Dialog也就不會再顯示出來了.

更好且通用的做法:在調(diào)用commit,popBackStack以及onBackPressed方法之前,判斷 onSavedInstanceState()方法是否已經(jīng)執(zhí)行,并且onResume方法還沒有執(zhí)行,如果不是,那么直接操作,否則加入到 pending隊列,等待onResumeFragments或者onPostResume之后再執(zhí)行.

注意:不要在onResume中操作,因為這時候FragmentManager中的mStateSaved依然可能是true.(如果執(zhí)行順序是 onSavedInstanceState()->onPause()->onResume() 或者 onPause()->onSavedInstanceState()->onResume());

public void endPaintingPager(int index) {if (mFirstLevel == PAINTING_PAGER) {mFirstLevel = PAINTER_START;if (!mIsStateSaved) {getSupportFragmentManager().popBackStack();} else {mPopBackStackRunnable = new Runnable() {@Overridepublic void run() {getSupportFragmentManager().popBackStack();}};}}} @Overrideprotected void onPostResume() {super.onPostResume();if (mPopBackStackRunnable != null) {mPopBackStackRunnable.run();}}

?

轉(zhuǎn)載于:https://www.cnblogs.com/reverie/p/5524124.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日日草夜夜草 | 极品少妇av | 成人午夜网址 | 精品人妻人人做人人爽 | wwwxxxx日本| 久久久久久久久久久影视 | 国偷自拍第113页 | 国产网红主播精品av | 国产精品伦理一区二区 | jizzjizz黄大片 | 中文字幕一区二区视频 | 亚洲av久久久噜噜噜噜 | 少妇被躁爽到高潮 | 午夜在线精品 | 国内黄色片| 亚洲欧洲综合在线 | 午夜影院在线观看免费 | 免费观看成人鲁鲁鲁鲁鲁视频 | 日韩一区在线播放 | 亚洲黄色三级视频 | 国产在线观看免费网站 | 久久综合成人 | 韩国三级视频在线 | 男女插插网站 | 欧美成人黄| 国产精品无码专区av在线播放 | 九九热免费在线视频 | 波多野结衣av无码 | 3o一40一50一6o女人毛片 | 色婷婷亚洲 | 欧美a在线视频 | 在线观看国产一区二区三区 | 午夜一区二区三区在线 | 国产激情对白 | 日本色图片 | 日p免费视频 | av动漫网 | 国产伦精品一区二区. | av小说在线| 成人精品一区二区三区电影 | 精品国产乱码久久久久久鸭王1 | 国产又爽又黄视频 | 久草高清视频 | 一区二区三区四区中文字幕 | 国产视频网 | 成人日韩欧美 | 俺也去av | 夜夜骚av一区二区三区 | 国产精品一区二区三区四区 | 久久精品午夜福利 | 中文在线观看高清视频 | 亚洲最大成人在线视频 | 边添小泬边狠狠躁视频 | 日本熟妇一区二区 | 成人一级免费视频 | 亚洲中文字幕一区 | av在线亚洲天堂 | 污视频网站免费观看 | 精品在线观看一区 | 少妇25p | 亚洲美女屁股眼交 | 亚洲一区中文字幕 | 大乳村妇的性需求 | 成人性生交大片免费看vrv66 | 欧美国产日韩视频 | 美日韩三级 | 天天天操操操 | 国产美女免费视频 | 久久这里有 | 成年人免费高清视频 | 牛av在线| 恶虐女帝安卓汉化版最新版本 | 爱福利视频一区 | 国产精选久久久 | 久久香蕉国产 | 国产破处av | 亚洲av无码一区二区三区性色 | 美女网站在线免费观看 | 91视频久久久 | 丁香九月婷婷 | 一区二区三区视频在线免费观看 | 中国一级特黄录像播放 | 免费国产视频在线观看 | 色www| 国产第99页 | 中文字幕一区二区三区夫目前犯 | 国产在线观看 | 天天舔天天操天天干 | 中文字幕一二三 | 国产美女明星三级做爰 | 国产亚洲精品久久久久久青梅 | 午夜亚洲av永久无码精品 | 黄网免费视频 | 一级特黄肉体裸片 | 少妇的被肉日常np | 性色av蜜臀av色欲av | 99久久久久久久 | xxx综合网| 不卡视频一区 |