【问题标题】:Android preferences to start Services启动服务的 Android 首选项
【发布时间】:2011-10-08 02:14:46
【问题描述】:

我正在构建一个应用程序,它应该只有一个带有三个复选框的屏幕和一个按钮来保存用户对复选框的选择。

如果用户勾选复选框并单击按钮,那么即使应用程序关闭,某个服务也应该启动并运行 - 直到应用程序再次启动并且用户取消选中复选框并再次单击按钮。当然,如果用户取消选中复选框,我希望下次启动应用程序时,复选框保持未选中状态,反之亦然。

所以我的问题是,我可以采取什么样的策略来解决这个问题?正常的偏好活动?共享首选项?

提前感谢大家的回答:-)

【问题讨论】:

    标签: android preferences


    【解决方案1】:

    我将SharedPreferences 用于类似的事情,只是因为它是一种让我的服务和活动查看信息的简单方法。

    所以,只要有一个 RemoteService (http://saigeethamn.blogspot.com/2009/09/android-developer-tutorial-part-9.html) 和一个 Activity。

    Activity启动查看信息,即可启动服务。如果用户取消选中该框,则它可以停止服务。

    因此,服务始终在需要时运行,并且与 Activity 无关,因此当 Activity 死亡时,服务会继续运行。

    【讨论】:

    • 但是使用共享首选项,我是否需要保存任何首选项,例如用户勾选或取消勾选复选框时?偏好部分是我不太清楚的部分..
    • 我怎样才能在复选框上附加一个监听器,这样当用户勾选复选框时,服务就会启动?
    • @noloman - 我会将您想要保存为状态的任何内容保存在某处。我发现 SharedPreferences 易于使用,如果我愿意,它可以让我选择分享它。为了附加监听器,只需遵循这个问题的公认答案:stackoverflow.com/questions/3149414/…
    • 好的,谢谢!当我遇到关于远程服务边界和著名的NullPointerException 的实际问题时,我会尝试实现它:)
    • @noloman - 对于 NPE,在调试视角下查看 LogCat。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 2021-02-16
    • 1970-01-01
    • 2016-04-26
    相关资源
    最近更新 更多