离开活动时,值不会保存在onSaveInstanceState中

时间:2015-01-05 07:48:10

标签: android android-intent android-navigation

我试图在离开活动时保存值,并在返回屏幕时检索。 所以我正在使用onSaveInstanceState方法来保存数据,并在返回时使用onCreate方法中的Bundle对象。

以下是我的情景..

活动A:

    protected void onCreate(Bundle savedInstanceState) {
    if (savedInstanceState != null) {
    Log.d(TAG, "Object received from savedInstanceState");
    }
    else{
    Log.d(TAG, "savedInstanceState value is null");
    }
}

    public void onSaveInstanceState(Bundle savedInstanceState) {
    super.onSaveInstanceState(savedInstanceState);
    Log.d(TAG, "In onSaveInstanceState");
    savedInstanceState.putString("obj_name", DashBoardDisplay_l.getName());
    }

OnClickListener save_click = new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent i = new Intent(getApplicationContext(),PointLogActivity.class);
i.putExtra("ref_name", Name_ref);
startActivity(i);}};

我可以在离开PointLogActivity时看到onSaveInstanceState方法的日志。

PointLogActivity:

@Override
protected void onCreate(Bundle savedInstanceState){
Intent intent = getIntent();
String YourtransferredData = intent.getExtras().getString("ref_name");
Log.d(TAG, "ref name "+YourtransferredData);
Name=YourtransferredData;
//For getting back button
getActionBar().setDisplayHomeAsUpEnabled(true);
}

我将通过活动左上角的单击后退按钮返回活动A. 但是当回到Activity时,我无法从Bundle对象中找到日期并从null条件获取日志。

savedInstanceState value is null

所以有人可以告诉我哪里出错了。

1 个答案:

答案 0 :(得分:0)

我通过将以下内容放在清单文件中的父活动来解决它。

机器人:launchMode =" singleTop">