Sobes.tech
Назад к вопросам
Junior — Middle
83

Каким образом можно запустить отображение интерфейса в Android, не используя класс Activity?

Компании, где спрашивали
Т-БанкТ-Банк

Ответ от нейросети

sobes.tech AI

В Android интерфейс обычно отображается через Activity, но можно обойтись и без неё, например, используя класс WindowManager для добавления собственного View напрямую в окно системы. Это часто применяется для создания оверлеев (например, всплывающих подсказок или чатов поверх других приложений).

Пример добавления View без Activity:

WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);

View myView = LayoutInflater.from(context).inflate(R.layout.my_layout, null);

WindowManager.LayoutParams params = new WindowManager.LayoutParams(
    WindowManager.LayoutParams.WRAP_CONTENT,
    WindowManager.LayoutParams.WRAP_CONTENT,
    WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY, // или TYPE_PHONE для старых версий
    WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
    PixelFormat.TRANSLUCENT
);

windowManager.addView(myView, params);

Для этого нужно иметь соответствующие разрешения, например SYSTEM_ALERT_WINDOW.

Также можно использовать Dialog или PopupWindow, которые не требуют Activity для отображения, но в любом случае нужен контекст.