0

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");
    }
}

そして、Activitiesを開始するためのこのメソッドがあります

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 を実行する必要がありますか? アプリが実行している位置情報リクエストの数を最小限に抑えようとしています。

4

1 に答える 1

1

これは、アプリケーションが強制終了されたときにのみ呼び出されます。この場合、新しいアクティビティを強制終了するか、前のアクティビティに戻ると、アクティビティは再開されるだけで再開されません。onSaveInstanceStateのメソッド シグネチャは、いつ呼び出されるかを説明しています。

于 2013-09-18T13:54:32.420 に答える