2012-02-23 3 views
3

У меня есть приложение, которое распространяется в ряд приложений. Я хотел бы предоставить пользователям метод очистки своих пользовательских данных. Чтобы сделать это, я хотел бы, чтобы каждое приложение очищало его пользовательские данные. У меня эта часть работает правильно.Есть ли способ программно перезапустить приложение для Android

Вопрос в том, как только я очистил пользовательские данные, есть ли способ перезапустить приложения, чтобы восстановленные настройки вступили в силу?

+1

Почему вы не можете просто 'finish()' и 'startActivity()' снова? – Fixpoint

ответ

3

This Запись в блоге Ян Джонас предлагает хорошее объяснение того, как программно перезапустить приложение.

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

AlarmManager mgr = (AlarmManager)ACTIVITY.getSystemService(Context.ALARM_SERVICE); 
mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, RESTART_INTENT); 
2
Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName()); 
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(i); 
+0

idk почему это никогда не работает для меня :(. Я удалил данные приложения, а затем позвонил, но восстановление не вступает в силу. и убить приложение самостоятельно. – user1509803

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