2014-09-10 7 views
2

У меня есть Android-устройство, которое запускает мое приложение в качестве системного приложения. В этом приложении есть функция обновления, которая загружает новую версию apk из Интернета, а затем перезаписывает apk на устройстве. После этого мне нужно перезапустить приложение ... и это моя проблема, я перепробовал много способов:Android - Как программно перезапустить system_process?

finish(); 

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

System.exit(); 

android.os.Process.killProcess(pid); 

Я заметил, что если остановить system_process в Eclipse, мои устройства перезагружается, приложение обновления и новая версия моего приложения запущена. Итак, мой вопрос: как я могу остановить/перезапустить system_process программно? Или у вас есть хорошая идея перезапустить и запустить мое новое приложение с версией? Thx:

+0

попробуйте эту ссылку http://stackoverflow.com/questions/2486934/programmatically-relaunch-recreate-an-activity –

+0

chnage этот android.os.Process.killProcess (PID) в ---> android.os.Process.killProcess (android.os.Process.myPid()); – KOTIOS

+0

Привет. Если я убью свое приложение с помощью killProcess, он пойдет в мертвый цикл ... ActivityManager убивает процесс, а затем звезды, но он выдает исключение NullPointerException и снова умирает ... –

ответ

2

Thx. Это волшебство! :)

PowerManager pm = (PowerManager) this.getApplicationContext().getSystemService(Context.POWER_SERVICE); 
pm.reboot("bootloader"); 
Смежные вопросы