Android начать деятельность из фонового потока

Мое приложение создает задачу таймера (фоновый поток) и периодически нужно что-то отображать. Главный экран может быть скрыт позже другими приложениями. Я выяснил (AFAIRemember on stackru), что для создания уведомлений о тостах мне нужно использовать runOnUiThreadrunnable(просто Toast.makeText вылетело приложение).

Теперь я хочу, чтобы мой фоновый поток мог собирать пользовательский ввод. Я создал класс активности с макетом и вызываю его через намерение

Intent intent = new Intent(this, screen2.class);
startActivityForResult(intent, 1);

Когда основной экран активен, мой новый экран показывает нормально. Но когда главный экран скрыт, другой мой экран скрыт, и я вижу его только тогда, когда снова активирую свое приложение с помощью кнопки "Последние".

Я пытался запустить намерение для второго экрана через runOnUiThreadrunnable - тот же результат - новый экран скрыт, пока мое приложение не станет активным.

Как фоновый поток может отображать некоторые действия на экране (поток пользовательского интерфейса)?

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); заставил второй экран появиться на переднем плане, но каким-то образом он заменил основной экран.

0 ответов

Другие вопросы по тегам