IllegalStateException: Can not perform this action after onSaveInstanceState解决办法
首先我们需要弄清楚onSaveInstanceState方法是在什么时候会被调用,当该Activity即将被销毁前或者按home键退出时调用,来保存Activity数据的,如果在保存玩状态后,桌面通过其他方式启动程序且需要进行Fragment的入栈或弹栈操作就会出错。桌面其他方式如widget、悬浮窗、通知状态栏等方式通过Intent启动程序。
此时拦截该Intent可以在下面的方法中进行
private Intent onHomeIntent; // home键退出后通过intent启动程序@Overrideprotected void onNewIntent(Intent intent) {// 拦截Intent,保存Intent,在onResume中进行处理onHomeIntent = intent;}@Overridepublic void onResume() {if(onHomeIntent != null){// home键退出后通过intent启动程序// dosomethingonHomeIntent = null;}super.onResume();}
new Handler().post(new Runnable() {@Overridepublic void run() {// do something}});