其他分享
首页 > 其他分享> > android-AppWidget更新服务不会在从主机删除小部件上停止

android-AppWidget更新服务不会在从主机删除小部件上停止

作者:互联网

我想做的是,一旦从用户的Android手机的主屏幕上删除了AppWidget,我想停止更新AppWidget的后台服务.

这是我正在使用的代码…不明白怎么了?

@Override
 public void onDeleted(Context context, int[] appWidgetIds){
 Intent serviceIntent = new Intent(context, UpdateService.class);
 context.stopService(serviceIntent);
 super.onDeleted(context, appWidgetIds);
}

有任何想法吗?谢谢您的帮助.

解决方法:

经过大量研究,我终于将其修复.我的目标是在从屏幕上删除所有AppWidget实例时停止后台服务.

这是干嘛的…

>使用共享的首选项来切换1和0.当用户将窗口小部件的第一个实例放在屏幕上时,SharePref切换为1.从屏幕上删除了应用程序小部件的最后一个实例后,它将切换回0.
>服务中的@Override OnReceive方法.收听这些广播-启用AppWidget(在窗口小部件的第一个实例放置在屏幕上时广播),禁用窗口小部件(在窗口小部件的最后一个实例从屏幕上移除时,由OS广播)
广播AppWidget Disabled时,调用重写的方法OnDisabled方法.

3.在@Override OnDisabled方法中调用stopService.完美的作品.

记住OnDeleted和OnDisabled之间的区别.删除窗口小部件的实例时将调用OnDeleted,这并不意味着要删除的窗口小部件是最后一个.我希望即使屏幕上只有一个窗口小部件实例,我的服务仍然可以运行.

*此外,如果您不想执行上述所有操作,而让Android负责服务等,请使用IntentService. **

标签:android-appwidget,android-widget,android
来源: https://codeday.me/bug/20191023/1915260.html