0

我的 android 应用程序使用当前在应用程序打开(并且服务当前未运行)或设备重新启动时触发的服务。

当我在 Google Play 上发布第一个更新时,我注意到在设备上从 Google Play 更新应用程序时,通过我的服务设置的应用程序功能停止工作,直到我打开应用程序一次或重新启动设备。

因此,我在 Google Play 上发布了一条消息,要求我所有当前使用这些功能的用户重新打开应用程序,以便这些功能重新开始工作。

现在我计划为我的应用程序发布另一个更新,但是这一次,我想以某种方式让服务在应用程序更新时持续存在, 或者在应用程序更新时 重新启动服务 而不强制任何用户操作,这样现有用户就不会体验到任何使用我的应用程序的问题。

任何带/不带代码的解决方案将不胜感激。

4

1 回答 1

0

作为用户 iVoid 评论,您可以听取android.intent.action.MY_PACKAGE_REPLACED意图。创建一个BroadcastReceiver并确保你听它。

在您的AndroidManifest.xml声明中BroadcastReceiver

<receiver android:name=".MyReceiver">
    <intent-filter>
        <action android:name="android.intent.action.MY_PACKAGE_REPLACED"/>
    </intent-filter>
</receiver>

在你的MyReceiver课堂上,你可以做任何你想做的事情,比如重启你的服务。

public class MyReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        ...
    }
}
于 2018-01-31T16:04:47.670 回答