1

我在我的 android 应用程序中使用前台服务。我正在覆盖服务的方法onStartCommand,如下所示:

public int onStartCommand(Intent intent, int flags, int startId) {
// doing my staff here
}

正如文件所说:

每次客户端通过调用 startService(Intent) 显式启动服务时由系统调用,提供它提供的参数和表示启动请求的唯一整数令牌。

startId int:表示此特定启动请求的唯一整数。与 stopSelfResult(int) 一起使用。

我正在正确使用服务,并且服务工作正常。

我的问题是:

每次我启动服务时,startId 都会像文档所说的那样增加。我不清楚的是 startId 增加的影响是什么?它会占用更多内存还是会影响应用程序性能?(例如,如果 startId 增加超过 1000 怎么办?)

4

1 回答 1

0

这只是一个令牌,只是一个 ID,如startActivityByResult.

如果您多次启动服务,您可以通过此令牌对它们进行处理。

假设您调用 start service 两次,然后想停止第二次调用!您将需要一些东西来引用那一秒,而这就是这个 ID。

增加此 ID 不能表示内存泄漏或任何它只是一个 ID。但是,您需要在应用程序中多次启动服务的情况很少见。所以要小心你的所作所为。如果您真的不需要它,请不要启动单个服务的多个实例。

于 2016-10-12T10:01:17.470 回答