【发布时间】:2024-04-28 00:15:02
【问题描述】:
我正在 android 中开发时钟小部件应用程序,我有一个在后台运行的前台服务,但问题是当我更新应用程序时,服务已停止。如何在应用更新后保持服务运行,我尝试了 ACTION_MY_PACKAGE_REPLACED 并放置在广播接收器中但没有奏效,我无法在该特定接收器中调用 onReceive。
【问题讨论】:
标签: android kotlin service widget receiver
我正在 android 中开发时钟小部件应用程序,我有一个在后台运行的前台服务,但问题是当我更新应用程序时,服务已停止。如何在应用更新后保持服务运行,我尝试了 ACTION_MY_PACKAGE_REPLACED 并放置在广播接收器中但没有奏效,我无法在该特定接收器中调用 onReceive。
【问题讨论】:
标签: android kotlin service widget receiver
如果您在 Android Studio 中进行测试,它可能根本不会触发该广播。 This question/answer 参与其中 - 如果您通过 adb install 安装,您会收到广播,如果您使用 Run in AS 安装,则不会发生。
您基本上需要构建您的应用程序(Rebuild 在Build 菜单中,或在命令行中使用gradlew assembleDebug)然后运行adb install app\build\outputs\apk\debug\app-debug.apk(或任何路径,取决于您在哪里运行它),它应该工作。我建议在您的接收器中放置一个日志调用,以便您查看它是否运行
还要确保您的接收器在清单中有 android:exported=true 和 android:enabled=true
【讨论】: