1

私は持っていてActivity A、そこから電話しましたActivity B。マニフェストのアクティビティ A には configChanges があり android:configChanges="locale|orientation|screenSize"ます。

アクティビティ A - ロケールの変更

@Override
public void onConfigurationChanged(Configuration newConfig)
{
    super.onConfigurationChanged(newConfig);
    Resources res = this.getResources();
    res.updateConfiguration(newConfig, null);
    Intent intent = getIntent();
    intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
    intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
    startActivity(intent);
}
  • アクティビティ B を開始するための

    インテント インテント = 新しいインテント(this, B.class); startActivity(意図);

アクティビティ A を開始してロケールを変更すると、すべて正常に動作します。しかし、アクティビティ A を開始しようとすると、アクティビティ B を開始してから、アクティビティ A に移動してロケールを変更しますActivity A will not be restarted, it will be destroyed。アクティビティ A が破棄されないようにするにはどうすればよいですか?

4

1 に答える 1

0

フラグIntent.FLAG_ACTIVITY_REORDER_TO_FRONTを Intent に追加します。既に実行されている場合、スタックから既存のアクティビティを並べ替えます。

于 2013-08-08T08:34:34.310 に答える