0

我有一个后台服务,可以推送通知。当您单击通知时,我的活动已打开,但问题是,再次调用 onStartCommand,这可能会调用另一个通知,这意味着我有一个循环。

我在用着

    @Override
public int onStartCommand(Intent intent, int flags, int startId) {
    return Service.START_NOT_STICKY;
}

也试过 Service.START_STICKY 没有效果。

在我的清单中:

        <service
        android:name=".notification.NotificationService"
        android:exported="false"></service>

什么可能导致召回 onStartCommand?

4

1 回答 1

0

检查您的Activity代码,听起来像是您不小心启动了Service.
在某些情况下,可能会发生这种情况,例如 如果内存压力过大,它可能会被系统杀死。如果发生这种情况,系统稍后会尝试重新启动服务。

还有另一种可能发生这种情况。如果您旋转您的设备,您Activity将被杀死并根据Android 官方文档 Activity重新启动。你的Service将再次启动。阅读文档,节省一些时间和头痛。在此链接上Android 官方文档 Activity,向下滚动 2 圈,您会看到生命周期的图片。

于 2013-09-15T21:46:55.427 回答