onSaveInstanceState未运行

时间:2013-09-18 13:46:22

标签: android

我的onSaveInstanceState()

上有一个简单的orderride
@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    Log.d("FUApp", "savingInstanceState");
    if (haveLocation) {
        outState.putParcelable("theLocation", theLocation);
        Log.d("FUApp", "Location stored");
    }
    else
    {
        Log.d("FUApp", "Location wasn't stored");
    }
}

然后我有这个启动活动的方法

public void setupStartActivityIntent(Context base, Class clss, Bundle mBundle) {
    Intent intent = new Intent(base, clss);
    if (mBundle != null) {
        intent.putExtras(mBundle);
    }
    if (currentAPIVersion >= 16) {
        Bundle translateBundle = ActivityOptions.makeCustomAnimation(
                base,
                R.anim.slide_in_left,
                R.anim.slide_out_left
        ).toBundle();
        startActivity(intent, translateBundle);
    } else {
        startActivity(intent);
    }

onSaveInstanceState应该在新Activity开始之前运行吗?我正在尝试最小化我的应用程序正在执行的位置请求的数量。

1 个答案:

答案 0 :(得分:1)

只有在应用程序被杀死时才会调用它。在这种情况下,如果您终止新活动或返回到上一个活动,则只会恢复活动并且不会重新启动。 onSaveInstanceState的方法签名解释了何时被调用。