首页 > 解决方案 > 如果 BroadcastReceiver 在 AppWidgetProvider 中注册,它会保持活动多长时间?

问题描述

我注册了一个我BroadcastReceiverACTION_TIME_TICK内部AppWidgetProvider,每分钟更新一个时钟。就像在这个例子中:

AFAIK 在运行时注册的 BroadcastReceiver 仅在应用程序运行时才处于活动状态。但据我了解,AppWidgetProvider 可以随时收集垃圾,而且它没有真正的生命周期。

在过去的 30 分钟里,这一直很好,但这真的(仍然?)是一种可行的方法吗?
BroadcastReceiver 理论上会注册多久?


更新:我使用内存填充应用程序模拟了 ram 短缺,并使用adb shell ps -A. 一旦进程终止,时钟的更新实际上就停止了。

标签: androidbroadcastreceiverandroid-broadcastandroid-appwidgetappwidgetprovider

解决方案


BroadcastReceiver 理论上会注册多久?

只要您的进程正在运行。您的进程将保持运行多长时间因环境而异(系统 RAM 的数量、通过一种或另一种方式执行后台工作的已安装应用程序的数量、用户是否正在积极使用设备以及在其他应用程序之间切换等)。


推荐阅读