Android窗口小部件。强制停止后如何恢复过程?

问题描述 投票:2回答:1

我的android小部件的过程在应用程序设置系统菜单中按“强制停止”后或在小米MIUI中“关闭全部”后已停止。和小部件停止更新。只有一种方法可以再次运行我的窗口小部件-取消安装然后安装。

如何实现Android小部件的稳定工作?

android widget restore
1个回答
0
投票

我解决了我的问题。事实证明,当用户在系统菜单中按“强制停止”或在小米MIUI中按“全部清除”时,小部件的处理不会停止。主线程保持活动状态,并继续接收系统消息。但是引用了AppWidgetManager,RemoteViews和ComponentName的AppWidgetProvider的静态字段变为NULL。我只是重新创建新对象。

    public class AppWidget extends AppWidgetProvider {
    public static RemoteViews remoteViews;
    public static AppWidgetManager appWidgetManager;
    public static ComponentName watchWidget;
    @Override
    public void onReceive(Context context, Intent intent) {
        super.onReceive(context, intent);

        if(remoteViews == null)
            remoteViews = new RemoteViews(context.getPackageName(), R.layout.app_widget);
        if(appWidgetManager == null)
            appWidgetManager = AppWidgetManager.getInstance(context);
        if(watchWidget == null)
            watchWidget = new ComponentName(context, AppWidget.class);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.