диалог андроида, открывающий другое представление позади этого - PullRequest
1 голос
/ 10 января 2011

Привет, мое приложение имеет 3 действия, одним из которых является диалог.Я сделал это с помощью этого кода в AndroidManifest.xml

android:theme="@android:style/Theme.Dialog"

приложение также имеет службу, которая может открывать диалоговое окно, даже если приложение не отображается, однако, когда оно делает это, оно также открываетсяодно из других заданий в фоновом режиме.Есть ли способ остановить это, чтобы он открывал диалоговое окно перед текущим действием (даже если действие из другого приложения)?

Спасибо, ng93

Ответы [ 3 ]

3 голосов
/ 19 января 2012

Я решил это, добавив:

android:taskAffinity=".MyDialog"

в мой диалог в AndroidManifest.xml. Тогда это не относится к другим вашим задачам и может быть показано без вызова приостановленной активности.

1 голос
/ 12 января 2011

Вы не можете отобразить что-либо перед активностью другого приложения. «впереди» несколько двусмысленно, поэтому я поясню, что ваше приложение не может одновременно использовать экран совместно с другим приложением.

Насколько я понимаю, дизайн Android по своей сути требует, чтобы когда вы выполняли что-то на экране, процесс / задача вашего приложения находились на переднем плане и были в фокусе, таким образом, фокусируя другие действия для этой задачи. Это означает, что другие приложения не работают с фокусом пользовательского интерфейса, когда ваше приложение находится в фокусе.

Это означает, что, например, когда ваше приложение запускает действие, оно фокусирует стек действий вашего приложения и помещает новое действие (в данном случае, ваше диалоговое окно) поверх стека вашего приложения. В результате, если вы нажмете «назад» во время отображения диалогового окна, вы вернетесь к ранее отображенному действию. Если стек очищен от предыдущих действий, «назад» перенесет вас в приложение, которое ранее отображалось на экране.

Есть способы очистки стека, такие как: http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP


В зависимости от вашего сценария вы можете очистить стек или «выйти» из приложения, когда пользователь закроет диалоговое окно. Кроме того, диалоговое действие может переопределить onBackPressed, так что если пользователь нажимает «назад», действие «выходит» из вашего приложения, возвращая пользователя к тому, что он делал до диалога.

Дополнительная информация о мероприятиях и стеках: http://developer.android.com/guide/topics/fundamentals.html#acttask

0 голосов
/ 13 января 2011

я закончил тем, что закрыл все свои действия приложений перед открытием диалогового действия, не идеальный, но кажется единственным способом получить функциональность im после

...