Всплывающее диалоговое окно на главном экране Android

Можно ли показывать всплывающее диалоговое окно (AlertDialog) на главном экране на устройстве Android через службы?

3 ответа

Решение

Вы могли бы создать Activity с Theme.Dialog тема. В вашем AndroidManifest.xml файл добавить тему в упражнение, например так:

<activity android:name=".DialogActivity" android:theme="@android:style/Theme.Dialog"></activity>

С вашего сервиса просто начните это Activity, Вы должны будете начать деятельность с Intent.FLAG_ACTIVITY_NEW_TASK флаг. См. Как начать действие с сервиса

Кому-нибудь нужна опция "android:launchMode="singleInstance", когда всплывающая активность в вещательном приемнике или службе? Без этой опции мое приложение запустилось автоматически и показало над ним MyDialogActivity. А затем что-то случилось не так. (Мое приложение имеет Основное действие с функцией автоматического входа в систему. Когда другое новое действие запускается автоматически, MyDialogActivity скрывается за ним.)

Итак, это мой пример XML-кода.

    <activity
        android:name=".MyDialogActivity"
        android:launchMode="singleInstance"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.Dialog" />
    <activity

Я надеюсь, что кому-то нужны мои комментарии.:)

Вы не можете создавать диалоги из сервиса, но у нас есть одно альтернативное решение: вы можете создать dialog activity и начать эту деятельность с вашего сервиса

Вы можете установить тему деятельности в качестве диалога ниже

<activity android:name=".MyDialogActivity" android:theme="@android:style/Theme.Dialog"
        android:label="@string/app_name">
</activity>

Создать CustomDialog как действие

добавить в манифест

<activity android:name=".view.activity.CustomDialog"
        android:launchMode="singleInstance"
        android:screenOrientation="fullSensor"
        android:theme="@style/AlertDialogTheme"
        />

добавить Style AlertDialogTheme в style.xml

<style name="AlertDialogTheme" parent="Theme.MaterialComponents.Light.Dialog.Alert.Bridge">

</style>
Другие вопросы по тегам