0

我的 Android 应用程序是一个前台服务,我希望用户能够随时禁用该服务,而无需卸载整个应用程序。

我在清单中使用 enabled = true 标签并启动完成以在前台启动服务。我担心的是,如果我有一个非常基本的全局布尔值(在服务的 onCreate 内) userEnabled = false 以防止服务启动(stopSelf),Android 将继续尝试启动我的服务,这将导致循环和因此使用不必要的资源?

请有人与我分享他们的知识,让我知道我不必担心这一点,或者这样做的正确程序/方法?我找不到任何提供指导的文档或帖子。

我提前谢谢你。

回答:请参阅下面的 CommonsWare 的回答,这里是一些有用代码的链接,也是由 CommonsWare 提供的

进一步阅读后,在 Manifest 中启用服务集不会导致任何循环。

4

1 回答 1

1

我担心的是,如果我有一个非常基本的全局布尔值(在服务的 onCreate 内) userEnabled = false 以防止服务启动(stopSelf),Android 将继续尝试启动我的服务,这将导致循环和因此使用不必要的资源?

那句话对我来说并没有完全解析——我看不到你担心的循环。

话虽如此,如果您希望用户控制您的服务是否在启动时启动,请在用户禁用您的服务时使用并禁用PackageManager您的服务。这样,在重新启动时,您将无法控制,因此不会启动服务。如果用户重新启用您的服务,请再次使用以重新启用.setComponentEnabledSetting()BOOT_COMPLETED BroadcastReceiversetComponentEnabledSetting()BOOT_COMPLETED BroadcastReceiver

于 2012-08-19T23:08:22.377 回答