如何在 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 的情况下保持蓝牙连接,请使用前台服务。
我有一个小部件: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 的情况下保持蓝牙连接,请使用前台服务。