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

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

概述我想做的是,一旦从用户的Android手机的主屏幕上删除了AppWidget,我想停止更新AppWidget的后台服务.这是我正在使用的代码…不明白怎么了?@OverridepublicvoidonDeleted(Contextcontext,int[]appWidgetIds){IntentserviceIntent=newIntent(context,UpdateService.cl

我想做的是,一旦从用户的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-AppWidget更新服务不会在从主机删除小部件上停止所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1092580.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存