【发布时间】:2016-10-12 09:49:43
【问题描述】:
我在我的 android 应用程序中使用前台服务。我正在覆盖服务的方法 onStartCommand 如下:
public int onStartCommand(Intent intent, int flags, int startId) {
// doing my staff here
}
正如documentation所说:
每次客户端显式启动服务时由系统调用 通过调用 startService(Intent),提供它提供的参数 以及一个表示启动请求的唯一整数令牌。
还有
startId int:表示此特定请求的唯一整数 开始。与 stopSelfResult(int) 一起使用。
我正在正确使用服务,并且服务运行正常。
我的问题是:
每次我启动服务时,startId 都会像文档所说的那样增加。我不清楚的是 startId 增加的影响是什么?它会占用更多内存还是会影响应用程序性能? (例如,如果 startId 增加超过 1000 怎么办?)
【问题讨论】:
-
在
Service#stopSelfResult(int startId)中使用,只是一个ID而已 -
您是否从您的应用程序中多次启动相同的服务?你为什么要这样做 ?解释一下你的情况,然后我可以回答
-
@AmirZiarati 有什么问题吗?如果没有它,您将如何将新请求传递给
IntentService? -
@pskink 没有任何问题。我只是要确保你知道你在做什么。因为每次调用服务都将是一项工作,而这个 ID 是该工作的一个 ID。如果之前的任务仍在工作并且 ID 不是这种现象的标志,它可能会增加内存使用。
标签: android performance foreground-service