首页 文章

onSavedInstanceState无法返回活动

提问于
浏览
0

使用单击按钮的意图转到另一个活动,然后返回原始活动 .

我试图保留两个整数离开活动为其他活动,然后当我返回到原始活动时,我得到一个null为该捆绑 .

有谁知道为什么这不起作用?

我使用savedInstanceState包来保存屏幕旋转变量,它在这种情况下工作,但是当我离开去查看另一个活动然后返回到此活动时,捆绑包没有保存 . 返回时返回null .

onSavedInstanceState方法

@Override
public void onSaveInstanceState(Bundle outState){
super.onSaveInstanceState(outState);

outState.putInt("index", index);
outState.putInt("top", top);

} // end onSavedInstanceState

onCreate方法的第一部分,包含获取savedInstatnceState保存变量的代码

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

    if(savedInstanceState!=null){
        index = savedInstanceState.getInt("index");
        top = savedInstanceState.getInt("top");
        Log.i("$$$$$$$", "value of index and top returned after activity starts" + index +  " " + top);
    }else if (savedInstanceState == null){
        Log.i("$$$$$$$", "saved instance state is null" + index +  " " + top);
    }

1 回答

  • 1

    发生配置更改时会调用 onSaveInstanceState() ,例如屏幕方向,语言更改等 .
    打开另一个活动不是配置更改,这就是不调用该方法的原因 .

相关问题