Android:服务startService或绑定(bind)服务

标签 android

我有一个服务,主 Activity 使用该服务来执行一些后台作业,并且它开始使用绑定(bind)和取消绑定(bind)。

这样,当activity启动时服务启动,当activity调用unbind停止时,这样就很好用了。

现在我需要一个 CheckBoxpreference,一旦为 true 将启动服务,并且它必须在后台运行,尽管主要 Activity 将关闭。

获得此结果的最佳方法是什么?我是否必须根据首选项来启动服务/停止服务,或者当首选项为真时我必须不要从主要 Activity 中取消绑定(bind)?

如果我在已经从主 Activity 的绑定(bind)中启动服务时从首选项启动服务,这将是同一服务的多个实例?

谢谢

最佳答案

使用OnSharedPreferenceChangeListener因此,当复选框从选中更改为未选中(反之亦然)时,您将收到更新。

您可以同时使用start/stopService机制和bind/unbind机制。如果调用 startService 或绑定(bind)服务,则服务将启动,当调用 stopService 并且不再绑定(bind)任何 Activity 时,服务将停止。

我认为this post将回答您有关已启动服务的问题。

关于Android:服务startService或绑定(bind)服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10578604/

相关文章:

java - Android WifiManager getScanResult 提示需要 ACCESS_COARSE_LOCATION 或 ACCESS_FINE_LOCATION 权限,尽管已声明权限

java - Java 意义上的 "annotation"和 iPhone SDK 意义上的 0x104567910 有什么区别?

android - setTextAlignment() 和 setGravity() 不能动态工作

android - android 中的 XML 布局错误

android - 调试数据库和 SQLite 文件不一致

java - 无法使用 Gson 库对 Firestore DocumentReference 数据类型进行序列化/反序列化

android - 使用 Google+ API 获取公共(public)信息

android - DownloadManager 不将下载的文件存储在下载文件夹中

android - 如何正确处理 ListView 中的 Android EditText 输入?

android - PhoneGap - 更新 Google Play 中的 apk 文件说 "Your APK' 的版本代码需要更高”