首页 文章

在Android前台服务中增加startId有什么影响?

提问于
浏览
1

我'm using the foreground service in my android application. And i' m覆盖服务的方法 onStartCommand ,如下所示:

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

正如documentation所说:

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

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

我正确使用该服务,服务正常 .

My question is :

每次我启动服务时,startId都在增加,因为文档说 . 我不清楚的是startId会增加什么影响?它会占用更多内存还是会对应用程序性能产生影响? (例如,如果startId增加超过1000?)

1 回答

  • 0

    这只是一个标记,就像 startActivityByResult 中的请求ID一样 .

    如果您多次启动服务,则可以通过此令牌为每个服务设置句柄 .

    假设您调用启动服务两次然后想要停止第二次调用!您将需要一些东西来引用第二个,这个ID是什么 .

    增加此ID不能表示内存泄漏或其他任何内容只是ID . 但是,您需要在应用程序中多次启动服务的情况很少见 . 所以要照顾你做的事情 . 如果您真的不需要,请不要启动单个服务的多个实例 .

相关问题