如何在 Android 主屏幕小部件中保持套接字连接

How to keep a socket connection alive in an Android home screen widget

我有一个小部件:class SmartAppWidget : AppWidgetProvider() 在这个 class 我打开了一个蓝牙套接字连接,但它总是连接和断开连接,如何在主屏幕小部件中保持连接有效?任何建议都会很棒。谢谢

它只是一个按钮,当您单击它时会通过蓝牙发送命令:

<?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>

AppWidgetProvider 只是 BroadcastReceiver 的清单注册子类。按照设计,它不会保持活动状态——您的 AppWidgetProvider 实例只存在一次对 onReceive() 的调用(以及从那里到 onUpdate() 或其他)。

如果您想在前台没有 activity 的情况下保持蓝牙连接,请使用前台服务。