安卓小部件。强制停止后如何恢复进程?

标签 android widget restore

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

android widget如何实现稳定工作?

最佳答案

我解决了我的问题。 事实证明,当用户在系统菜单中按下“强制停止”或在小米 MIUI 中按下“全部清除”时,小部件的进程不会停止。主线程保持 Activity 状态并继续接收系统消息。 但是引用 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);
    }
}

关于安卓小部件。强制停止后如何恢复进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58947942/

相关文章:

android - 将 AlertDialog 按钮对齐到中心

安卓服务连接

android - 在一个项目中使用另一个项目中的自定义 Android 小部件

ios - InAppPurchase 恢复 - 非续订订阅

java - 调用 onResponse 时应用程序崩溃

android - INSTALL_FAILED_USER_RESTRICTED : android studio using redmi 4 device

javascript - 使用 react.js 聊天小部件

android - 如何在 Flutter 中动态附加到 Column 小部件的子级

ios恢复谷歌地图sdk GMSMapsView的状态

redis - 转储和恢复redis中特定键的数据