Android начать деятельность из фонового потока
Мое приложение создает задачу таймера (фоновый поток) и периодически нужно что-то отображать. Главный экран может быть скрыт позже другими приложениями. Я выяснил (AFAIRemember on stackru), что для создания уведомлений о тостах мне нужно использовать runOnUiThread
runnable
(просто Toast.makeText
вылетело приложение).
Теперь я хочу, чтобы мой фоновый поток мог собирать пользовательский ввод. Я создал класс активности с макетом и вызываю его через намерение
Intent intent = new Intent(this, screen2.class);
startActivityForResult(intent, 1);
Когда основной экран активен, мой новый экран показывает нормально. Но когда главный экран скрыт, другой мой экран скрыт, и я вижу его только тогда, когда снова активирую свое приложение с помощью кнопки "Последние".
Я пытался запустить намерение для второго экрана через runOnUiThread
runnable
- тот же результат - новый экран скрыт, пока мое приложение не станет активным.
Как фоновый поток может отображать некоторые действия на экране (поток пользовательского интерфейса)?
PS
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivity(takePictureIntent);
- отображает экран камеры скрытым, в то время как действие вызова ниже отображает экран вызова поверх другого приложения, отображаемого в данный момент на экране
callIntent.setData(Uri.parse("tel:" + Uri.encode("+79851559700")));
callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
callIntent.setPackage("com.android.phone");
try {
startActivity(callIntent);
Добавление Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
для намерения камеры сделал отображение экрана камеры из фонового таймера, однако это не помешало мне сделать это.
Изменение на intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
заставил второй экран появиться на переднем плане, но каким-то образом он заменил основной экран.