【问题标题】:Android Widget. How to restore process after force stop?安卓小部件。强制停止后如何恢复进程?
【发布时间】:2019-11-20 06:21:14
【问题描述】:

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

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

【问题讨论】:

  • 但是当我在小米 MIUI Android 8.1.0 中按下“全部关闭”时,其他开发人员的小部件工作正常并且不会停止。

标签: android widget restore


【解决方案1】:

我解决了我的问题。 事实证明,当用户在系统菜单中按下“强制停止”或在小米 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);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 2013-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多