Java 手机锁定一段时间后,appWidget停止更新/工作

Java 手机锁定一段时间后,appWidget停止更新/工作,java,android,multithreading,widget,android-appwidget,Java,Android,Multithreading,Widget,Android Appwidget,我的小部件在一段时间后停止更新/工作。我有一个简单的小部件,它每隔几个小时显示一次引号(现在测试设置为秒),用于计时,它使用一个单独的线程 有什么不对劲?为什么它停止更新? 谢谢 package com.example.napiige; 导入android.appwidget.AppWidgetManager; 导入android.appwidget.AppWidgetProvider; 导入android.content.Context; 导入android.widget.Button; 导入

我的小部件在一段时间后停止更新/工作。我有一个简单的小部件,它每隔几个小时显示一次引号(现在测试设置为秒),用于计时,它使用一个单独的线程

有什么不对劲?为什么它停止更新? 谢谢

package com.example.napiige;
导入android.appwidget.AppWidgetManager;
导入android.appwidget.AppWidgetProvider;
导入android.content.Context;
导入android.widget.Button;
导入android.widget.remoteview;
公共类MainActivity扩展了AppWidgetProvider{
弦叠层;
静态MainActivity[]ige=新的MainActivity[3];
@凌驾
公共void onUpdate(上下文上下文,AppWidgetManager AppWidgetManager,int[]AppWidgetId){
final int N=appWidgetIds.length;
//对属于此提供商的每个应用程序小部件执行此循环过程

对于(int i=0;i如果您每隔几个小时更新一次,为什么不使用内置功能来更新AppWidgetProviderInfo中的应用程序小部件,请使用
android:updatePeriodMillis
来设置更新时间(我相信您可以获得的最短时间是30分钟,但它应该适合您)。有关更多资料,请浏览

我相信系统会在你感觉到的时候杀死你的线程,它没有义务让它继续运行

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="40dp"
    android:minHeight="40dp"
    android:updatePeriodMillis="86400000"
    android:previewImage="@drawable/preview"
    android:initialLayout="@layout/example_appwidget"
    android:configure="com.example.android.ExampleAppWidgetConfigure" 
    android:resizeMode="horizontal|vertical"
    android:widgetCategory="home_screen|keyguard"
    android:initialKeyguardLayout="@layout/example_keyguard">
</appwidget-provider>


如果设备在更新时处于休眠状态,则设备将唤醒以执行更新。出于测试目的,即使您在
android:updatePeriodMillis
中调用不到30分钟,它也不会更新,因为它需要至少30分钟的时间进行更新。我们还可以通过调用reiever手动更新它通过检查
receiever
中的操作并手动调用update方法,因为android不会调用
onUpdate()
metod

您可能是对的,我将使用默认的更新功能并对其进行长期测试。谢谢@svenoaks。
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="40dp"
    android:minHeight="40dp"
    android:updatePeriodMillis="86400000"
    android:previewImage="@drawable/preview"
    android:initialLayout="@layout/example_appwidget"
    android:configure="com.example.android.ExampleAppWidgetConfigure" 
    android:resizeMode="horizontal|vertical"
    android:widgetCategory="home_screen|keyguard"
    android:initialKeyguardLayout="@layout/example_keyguard">
</appwidget-provider>