我有一个主要活动用来做一些后台工作的服务,它开始使用绑定和解除绑定。
这样,当活动开始服务开始时,当活动调用解除绑定时停止,这很有效。
现在我需要一个CheckBoxpreference,一旦为true就会启动服务,它必须在后台运行,尽管主要活动将会关闭。
获得此结果的最佳方法是什么?我是否必须从首选项开始使用startservice / stopservice,或者当首选项为true时我必须不与主要活动解除绑定?
如果我从主要活动的绑定启动时从首选项启动服务,这将是同一服务的多个实例?
谢谢
答案 0 :(得分:2)
使用OnSharedPreferenceChangeListener
,以便当复选框从选中更改为未选中时(反之亦然),您将获得更新。
您可以同时使用start / stopService机制和bind / unbind机制。如果调用了startService或绑定了服务,服务将启动,当调用stopService时它将停止并且不再绑定任何活动。
我认为this post会回答有关已经启动的服务的问题。