我的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开始之前运行吗?我正在尝试最小化我的应用程序正在执行的位置请求的数量。
答案 0 :(得分:1)
只有在应用程序被杀死时才会调用它。在这种情况下,如果您终止新活动或返回到上一个活动,则只会恢复活动并且不会重新启动。 onSaveInstanceState的方法签名解释了何时被调用。