Что случится с приложением VPN, если оно будет убито?
Это общий вопрос, так как мне не хватает понимания следующего сценария, и, к сожалению, я не смог найти в Google ничего, что могло бы это объяснить.
Допустим, у меня есть приложение, которое расширяет службу VPN, некоторые асинхронные задачи, некоторые потоки для чтения и обработки пакетов, считываемых с интерфейса VPN. Понятно, что как только мы запускаем VPN, хотя мы убиваем приложение из задач (принудительное завершение), VPN продолжает работать.
Так что же происходит, когда мы убиваем приложение? Все ресурсы (потоки, основной поток пользовательского интерфейса) разрушены?
Точно так же, когда мы перезапускаем приложение, все ресурсы снова инициализируются?
Можете ли вы объяснить, как это работает здесь.
У меня есть этот вопрос, потому что у меня есть фоновый поток, который работает в основном потоке. Когда я принудительно закрываю приложение, поток не прерывается, но когда я пытаюсь обновить поток после перезапуска приложения (после принудительного выхода или уничтожения), я получаю исключение нулевого указателя, так как этот поток недоступен. Полностью ли завершен поток пользовательского интерфейса?
Каково решение для такого сценария с услугой VPN.
1 ответ
Понятно, что как только мы запускаем VPN, хотя мы убиваем приложение из задач (принудительное завершение), VPN продолжает работать.
Неправильно, "Force Close" уничтожает все приложение и все эффекты вместе с ним, такие как служба VPN, несмотря ни на что. Таким образом, пользователь, убивший приложение вручную, является абсолютным концом всего. тупик. ничего не могу с этим поделать.
Точно так же, когда мы перезапускаем приложение, все ресурсы снова инициализируются?
Все начинается в этой ситуации. даже кеши могут быть повреждены и удалены.
Для фоновых потоков вы должны поместить их все в Service
который имеет отдельное имя процесса в AndroidManifest.xml
Таким образом, ваша служба продолжит работать, даже если пользователь очистит историю приложений.
Но если ваше приложение будет убито вручную, все будет уничтожено, несмотря ни на что, и вы ничего не можете с этим поделать, это политика безопасности в Android.