У меня есть работа с гнездом UDP на порту. Если я нажимаю кнопку «Домой», активность идет в фоновом режиме, OnPause() и Вызывается метод OnStop(). Теперь я хочу возобновить свою работу, когда получаю некоторый пакет UDP. Чтение другие сообщения Я понимаю, что надо:Android: возобновление действия singleTask
- объявить деятельность как
android:launchMode="singleTask"
(илиsingleInstance
) - Затем, когда я хочу возобновить деятельность:
Intent intent = new Intent(this.getApplicationContext(), myActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);
Это решение не работает. Вызов startActivity(intent)
не показывает мою активность на переднем плане и onResume()
не вызывается.
Следующие флаги выполняют эту работу, но я не хочу очищать задачу и перезапускать новую.
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
Ваш udp-сокет находится в обслуживании, не так ли? – njzk2
Сокет находится в обслуживании, когда основное действие закрыто. Когда я создаю основное действие, сокет не подключается к службе, и основное действие связывает его. – peregrinus