【问题标题】:Why use a android service?为什么要使用安卓服务?
【发布时间】:2010-10-25 15:01:09
【问题描述】:

我想知道当您需要做很多事情来访问任何公共方法或从服务(例如更大的 List 对象)获取大量数据时,使用 android 服务进行后台工作有什么意义。

如果您愿意,为什么不使用一个简单的 POJO 在单独的线程中为您在后台执行操作,并且无需使用 AIDL 创建接口、绑定到服务等即可访问其公共方法?

似乎需要做很多工作才能从服务类访问方法,或者这真的不是 android 中服务类的重点吗?

我开发了一个 android 服务类,它从 web 服务获取 xml 结构中的 100 个项目,然后我将其解析为 POJO,然后存储在列表中,但我很难找到发送此列表的方法返回调用此服务的活动。

我已经阅读了有关使用 parcebales 对象的信息,但是连同所有 intent.putExtra 都有大小限制,因此我将来可能会遇到问题。

我正在考虑放弃 Android 服务,但我很快就发现了为什么我一开始就不喜欢使用它们 :(

一个简单的SomeBackgroundPojo backroundTask = new SomeBackgroundPojo(); backgroundTask.getData();

似乎比处理parcelables、serealizable objects、AIDL、binding etcc等都简单得多,只是为了实现我刚刚在上面输入的两行代码:(

【问题讨论】:

    标签: android service


    【解决方案1】:

    Nitpick:运行线程后台任务的对象准确地不是 plain old Java object 通常的含义。

    如果您不关心请求的 Activity 或应用程序关闭时正在完成的工作会发生什么,那么请务必避免使用服务。服务的要点之一是当用户离开 Activity 时它们可以保持活动状态:如果您只是在工作以填充 UI ListView,请务必使用例如一个AsyncTask,如this earlier question 中所述。

    【讨论】:

    • 是的,我使用它的目的是填写一个 ListView
    • 那么一个服务是矫枉过正和笨拙的。查看前面问题的答案以获取更多替代方案。
    猜你喜欢
    • 2011-04-10
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多