Дейността приключи след промяна на локала

Имам Activity A и се обадих от него Activity B. В манифеста Дейност А има configChanges android:configChanges="locale|orientation|screenSize".

В дейност А - за промяна на локала

@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.class); startActivity(намерение);

Ако стартирам Дейност А и променя локала, всичко работи добре. Но ако се опитам да стартирам Дейност А, тогава стартирам Дейност Б и след това отида до Дейност А и променя локала, Activity A will not be restarted, it will be destroyed. Как мога да предотвратя унищожаването на дейност А?


person user2017548    schedule 08.08.2013    source източник


Отговори (1)


Добавете флага Intent.FLAG_ACTIVITY_REORDER_TO_FRONT към вашето намерение. Той ще пренареди съществуваща дейност от стека, ако вече се изпълнява.

person Steve Benett    schedule 08.08.2013
comment
В Дейност А - за промяна на локал @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); Ресурси 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(намерение); } - за стартиране на Дейност B Intent intent = new Intent(this, B.class); startActivity(намерение); - person user2017548; 08.08.2013