可以在 Application 而不是 Activity 上调用 startService 吗?

Is it ok to invoke startService on Application rather than Activity?

基本上,标题,还要注意,这将用于前台服务。这个选择有什么影响吗?谢谢。

例如当你做

context.startService(new Intent(context, MyService.class));

当你这样做时也是如此

context.bindService(new Intent(context, MyService.class), serviceConnection, Context.BIND_AUTO_CREATE);

context.unbindService(serviceConnection);

如果上面的 context 变量是应用程序而不是 Activity。 这是一个前台服务。是否有任何 ill-effects 或不在应用程序上调用这些方法的原因?

谢谢。

任何 Context 都适用于这些操作。如果您觉得合适,欢迎您使用 Application。事实上,对于 bindService()unbindService(),强烈建议使用 Application 而不是 Activity,以便能够在配置更改时保持绑定。

我能想到的唯一限制是,我很确定您需要在调用 bindService().[=19 的同一 Context 上调用 unbindService() =]