android 服务是单例吗?

Is an android Service a singleton?

如果我在 main activity 中启动一个服务,然后退出 main 并再次创建 main,是否会在其位置放置一个新的服务实例?还是同一个实例?还是会有两个实例? 我需要知道,因为在我的服务中,每次创建新服务时我都会创建一个唯一的 ID。

每当您在 Android 中调用 startService()startForegroundService() 时,框架都会检查该服务是否已经 运行。

所以回答你的问题,是的。只有一个实例。

但是,每次调用 startService()startForegroundService() 时,都会调用服务的 onStartCommand() 方法。这意味着,如果您的服务中有任何您不想重新初始化的一次性初始化,请将其放入onCreate().

If I start a service in my main activity, then exit main and create main again, will a new service instance be put in its place?

你有两种情况如果你的服务仍然运行一个新的实例不会被创建但是如果你的服务停止(结束它的工作或系统由于内存不足或其他情况而停止它)当你启动它时你又得到了它的一个新实例。