【问题标题】:Activity finished after changing locale更改语言环境后活动完成
【发布时间】:2013-08-08 08:27:36
【问题描述】:

我有Activity A 并从它调用Activity B。 在清单 Activity 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

    Intent 意图 = new Intent(this, B.class); 开始活动(意图);

如果我启动 Activity A 并更改语言环境,一切正常。 但是,如果我尝试启动 Activity A,然后启动 Activity B,然后转到 Activity A 并更改语言环境,Activity A will not be restarted, it will be destroyed。 如何防止 Activity A 被销毁?

【问题讨论】:

    标签: android locale activity-finish onconfigurationchanged


    【解决方案1】:

    将标志 Intent.FLAG_ACTIVITY_REORDER_TO_FRONT 添加到您的 Intent 中。如果它已经在运行,它将从堆栈中重新排序现有的 Activity。

    【讨论】:

    • 在活动 A 中 - 用于更改语言环境 @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig);资源 res = this.getResources(); res.updateConfiguration(newConfig, null);意图意图 = getIntent(); intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);意图.addFlags(意图.FLAG_ACTIVITY_REORDER_TO_FRONT);开始活动(意图); } - 用于启动 Activity B Intent intent = new Intent(this, B.class);开始活动(意图);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多