主activity有个下拉菜单,选择对应第一条后,点击确定会打开AActivity,在AActivity中调用onsavedInstance保存信息后返回主activity,再选择第一条进入后,之前保存信息没有恢复出来,用sharedpreferences也不行。日志打印了一下,第一次建的activity没有销毁,第二次又新建了一个activity,所以没有恢复状态变量。不确定是不是这个原因。有什么办法可以解决这个问题吗?

解决方案 »

  1.   

    参考链接https://www.cnblogs.com/androidWuYou/p/5887807.html你把你的activity启动模式都设置为singleTask就能避免第二次新建的问题了
    <activity  
         android:name=".MainActivity"
         android:launchMode="singleTask" />  
      

  2.   

    启动模式改成singleTask,我主界面下拉菜单选择B选项参数传过去后,点击确定进入第二个activity ,第二个activity 显示的还是第一次选择菜单A里的参数,并没有变成B。
      

  3.   

    如果是没有销毁引起的,那你跳转的时候直接finish试下,SharedPreference没有效果就有点不正常了吧,都保存到本地文件了
      

  4.   

    你要保存啥状态啊? onsavedInstance  这个是用户点击home或者电源键 有可能会触发  这个相当于是系统行为, 不如你在ondestory中保存。
    至于新建是AActivity是一定的 ,你手动销毁的再打开当然是新建的 ,在Oncreate中用SP恢复状态即可。
      

  5.   

    状态变量,但是打印日志显示调用了onSaveInstanceState了啊。true和false是我要保存的状态变量
      

  6.   

    第一个activity没销毁,下拉菜单的数据是旧数据,onresume里重建下拉菜单,用sharedpreferences保存肯定行