Как сохранить соединение через сокет в виджете домашнего экрана Android - PullRequest
1 голос
/ 20 января 2020

У меня есть виджет: class SmartAppWidget : AppWidgetProvider() в этом классе я открываю соединение через разъем Bluetooth, но оно всегда подключается и отключается, как мне поддерживать соединение в виджете на главном экране? любые предложения будут великолепны. Спасибо.

Это просто кнопка, которая отправляет команды по Bluetooth, когда вы нажимаете на нее:

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:initialKeyguardLayout="@layout/smart_app_widget"
    android:initialLayout="@layout/smart_app_widget"
    android:minWidth="60dp"
    android:minHeight="60dp"
    android:updatePeriodMillis="86400000"
    android:configure="co.za.chester.smartcontroller.DeviceListActivity"
    android:widgetCategory="home_screen"></appwidget-provider>

1 Ответ

1 голос
/ 20 января 2020

AppWidgetProvider - это просто зарегистрированный манифестом подкласс BroadcastReceiver. По замыслу, он не остается в живых - ваш экземпляр AppWidgetProvider живет за один звонок на onReceive() (и оттуда на onUpdate() или любой другой).

Если вы хотите попытаться сохранить Bluetooth соединение без активности на переднем плане, используйте службу переднего плана.

...