2016-02-23 2 views
0

У меня есть 2 действия Activity1, Activity2, когда я открываю приложение Activity1, будет отображаться оттуда, я перейду к Activity2, и на этот раз Activity1 находится в фоновом режиме ,Как перезапустить приложение, когда пользователь находится в состоянии занятости и сменил язык в android

Когда я нахожусь в Activity2, я являюсь Activity2. Я открываю настройки и меняю язык, а затем перезагружаю систему Activity2. На данный момент я не хочу отображать activity2, я хочу перезапустить мое приложение от запуска.

В настоящее время я пробовал под логикой фрагменты, которые я использовал в Activity2, чтобы устранить крах.

Фрагменты:

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View view = inflater.inflate(
      R.layout.point_selection_list_fragment, container, false); 
    if (savedInstanceState != null) { 
     Utils.removeFragment(this); 
     return view; 
    } 
return view; 
} 
+0

Возможный дубликат [Как обновить активность после изменения языка (Locale) внутри приложение] (http://stackoverflow.com/questions/8049207/how-to-refresh-activity-after-changing-language-locale-inside-application) –

ответ

0

Надеюсь, это поможет.

Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName()); 
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(i); 

Только проблема с этим не перезапустит приложение, а только заново создайте классы. Таким образом, любые статические переменные внутри классов будут сохранять значения из предыдущих запусков

+0

Да, согласитесь с этим. вместе с этим я делаю ниже. protected void onCreate (Bundle savedInstanceState) { \t \t super.onCreate (null); \t \t handleLocalizationChanges (savedInstanceState); –

+1

Игнорировать выше. Ниже решена моя проблема. protected void onCreate (Bundle savedInstanceState) { \t super.onCreate (null); \t Intent i = getBaseContext(). GetPackageManager(). GetLaunchIntentForPackage (getBaseContext(). GetPackageName()); i.addFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity (i); // Удостоверьтесь, что вы отменили диалоговые окна предупреждений, если они есть } –

0

Пожалуйста, попробуйте это. finish() как действия после настроек изменяются, так и начинаются с начала действия. Спасибо Надеюсь, это поможет

0

Используйте

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 

См this solution here это может помочь вам

Смежные вопросы