首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >屏幕旋转后未调用onSaveInstanceState

屏幕旋转后未调用onSaveInstanceState
EN

Stack Overflow用户
提问于 2015-05-31 02:18:18
回答 1查看 8.5K关注 0票数 26

我知道有很多关于onSaveInstanceState的问题,但我找不到解决问题的方法。

我有一个扩展AppCompatActivity的活动;这个活动使用3个片段,它有一个变量'int currentStep‘来跟踪正在显示的片段。在onSavedInstanceState方法中,我将currentStep变量存储在包中,然后在onCreate方法中恢复它。

代码语言:javascript
复制
public class MainActivity extends AppCompatActivity {
    private final String CURRENT_STEP_TAG = "current_step";
    private int currentStep;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_pedido);        

        if(savedInstanceState == null) {
            loadFirstFragment();
        } else {            
            currentStep = savedInstanceState.getInt(CURRENT_STEP_TAG);
            if(currentStep == 2){
                //Do some stuff...
            }
        }
    }

    @Override
    public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
        Log.d("deubg", "--------onsaveinstancestate--------");
        outState.putInt(CURRENT_STEP_TAG, currentStep);
        super.onSaveInstanceState(outState, outPersistentState);
    }

 ...

}

问题是,当屏幕方向改变时,onSavedInstanceState不会被调用,而根据谷歌文档,它应该被调用。控制台未显示-onsaveinstancestate消息。然而,在屏幕旋转后,onCreate方法中的捆绑包savedInstanceState是非空的,但它没有int 'currentStep‘。

我尝试了很多方法:为ActionBarActivity更改AppCompatActivity,将对super.onSavedInstanceState的调用移到不同的位置,尝试存储其他变量;但无论我做什么,方法都不会执行。

我的清单中也没有android:configChanges。

我的应用程序正在针对sdk版本22、buildToolsVersion 22.0.1进行编译。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-31 02:23:12

除非您的应用程序是在安卓的棒棒糖(API21)版本或更新版本上运行的,否则您的

代码语言:javascript
复制
public void onSaveInstanceState (Bundle outState, PersistableBundle outPersistentState);

将不会被调用,因为它根本不存在于早于21版本的平台上。要支持API 21之前的设备,您必须覆盖以下方法,而不是上述方法:

代码语言:javascript
复制
public void onSaveInstanceState (Bundle outState);

这也适用于21+接口,所以您不需要同时覆盖这两个方法(除非您知道需要处理新方法提供的PersistableBundle )。

See docs

票数 70
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30549722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档