【问题标题】:Do you need to implement AIDL for a service to run outside of your apps life?您是否需要实施 AIDL 以使服务在您的应用程序生命之外运行?
【发布时间】:2010-11-09 18:44:17
【问题描述】:

我有一项服务可以发送带有定时任务的通知。我需要此服务在应用程序生命周期之外运行,但我只需要在应用程序生命周期内访问服务功能。本地服务是否足够,还是我需要实施 AIDL? 谢谢。

【问题讨论】:

  • 本地服务已经足够好了,但 Commonsware 会过来告诉你为什么保持这样一个长期运行的服务是个坏主意。

标签: android android-service aidl


【解决方案1】:

我有一项服务会发送定时任务通知。

我希望你的意思是AlarmManagerIntentService,这样你的服务只在内存中尽可能短的时间,足以做一些工作,提出Notification,然后走开.不要编写试图永远存在的服务,因为那是不可能的——用户或操作系统会终止你的服务。

本地服务是否足够,还是我需要实施 AIDL?

通过问这个问题,我相信您有更基本的问题,例如没有使用AlarmManagerIntentService 进行定期工作。您的 raise-a-Notification-periodically 服务不应运行,因此不应有您尝试访问的“服务功能”。

【讨论】:

  • AlarmManager 正是我一直在寻找的,也是实现这一点的正确方法,谢谢。
【解决方案2】:

您没有“实现 AIDL” - AIDL(android 接口定义语言)是一种推荐但非强制性的便利/抽象机制,用于生成实现 Binder RPC 接口所需的代码,这是推荐但不仅是通信方式提供服务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-08
    • 1970-01-01
    • 2012-06-17
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多