Я пишу приложение с двумя основными действиями:
- MainActiviy
- DialogActivity
MainActivity является типичным окном приложения, а DialogActivity являетсядействие, которое я стилизовал, чтобы оно выглядело как диалог, установив android:theme="@style/Theme.AppCompat.Light.Dialog"
Внутри MainActivity я могу запустить DialogActivity со следующим кодом.
val intent = Intent(this, DialogActivity::class.java)
startActivity(intent)
Диалоговое окно появится надосновной такой:
В дополнение к этому, я также хотел бы иметь возможность запустить диалог, нажав на уведомление. Если у меня откроется другое приложение и коснусь уведомления, поверх другого приложения появится диалоговое окно, как я хочу:
Тем не менее, если в данный момент у меня открыт MainActivity, а затем нажмите на уведомление, диалоговое окно появится поверх пустого фона:
Это происходит несмотря на то, чтодиалог появляется "сверху"Главное окно активности на обзорном экране:
Итак, вот мой вопрос : Если у меня MainActivity на переднем плане изатем запустите DialogActivity, коснувшись соответствующего уведомления. Могу ли я отобразить DialogActivity поверх открытого окна MainActivity?
Другими словами, когда я нажимаю на уведомление, оно должно выглядеть как первое изображениеесли MainActivity уже открыта на переднем плане, как второе изображение, если другое приложение находится на переднем плане, и как третье, только если нет открытых приложений в настоящий момент.
Я использую следующий PendingIntent для запускаактивность из уведомления. Возможно, есть специальный набор флагов намерений, которые делают то, что я хочу? Или, может быть, мне нужно сделать что-то более радикальное, например, объединить два отдельных действия в одно действие?
val intent = Intent(this, DialogActivity::class.java)
intent.flags = 0
val pendingIntent = PendingIntent.getActivity(this, 0, intent, 0)
Снимки экрана сделаны с эмулятора под управлением Android 9 (Api Level 28)