Dialog без открытия активити

383
26 января 2017, 02:08

Задача такая. Имеется сервис, который работает постоянно, в том числе и тогда, когда все активити приложения закрыты. Он шлет данные в класс приложения, который не уничтожается при закрытии активити. Этот класс ждет сообщений от сервиса. И когда сообщение приходит, он должен инициировать открытие диалога, не привязанного ни к какому активити. Возможно ли и как это сделать? Или возможно, сам service может создать диалог?

Answer 1

Отобразить к-л вьюху из сервиса можно так:

  1. Получаем объект-экран в который будем добавлять вьюхи
WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); 
  1. Добавляем в него программно созданные вьюхи методом addView(View v, LayoutParams params)
windowManager.addView(view, params); 
  1. В манифесте указываем нужное разрешение:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
Answer 2

Как вариант можно сделать прозрачный Activity со стилем типа:

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="Theme.Transparent" parent="android:Theme">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">false</item>
  </style>
</resources>

из которого уже "родить" Dialog

READ ALSO
Файловая система android 6

Файловая система android 6

Приложение сохраняет BitmapВот код их сохранения

546
Как дать БД понять что я оффлайн?

Как дать БД понять что я оффлайн?

Всем добрый вечерСтолкнулся с проблемой ,которая в целом исходит от моей неопытности

319
Проблема при работе с List и ArrayList

Проблема при работе с List и ArrayList

Есть некая таблица из нулей и единиц

310
Почему IDEA подчёркивает loadLibrary?

Почему IDEA подчёркивает loadLibrary?

Добрый день, работаю с JNA пытаюсь подключить к проектуdll библиотеку но IDEA выдаёт ошибку при её подключении то есть подчёркивает loadLibrary

287