2013-02-25 61 views
2

我有一个应用程序,这有一个服务,这运行STICKY如果有工作要做,即使用户关闭应用程序的服务工作,直到完成她的工作。传递ArrayList <T>服务和活动之间

看,我已经按照教程Android Example: Communication between Activity and Service using Messaging和适应我的应用程序,但是当我尝试发送邮件,这不是我的服务或客户端接收。

此外,我需要传递参数,像一个ArrayList中的工作流程是这样的

  1. 用户开始我的应用程序和应用程序更复杂的启动服务
  2. 用户在应用程序和应用程序按下一个按钮发送信号到服务(这可能是一个整数)
  3. 服务获取来自互联网,过程数据和这些数据发送到应用程序是否正在运行,如果不是服务通知用户新的数据
  4. 如果一段时间后没有从服务器接收服务停止。

问题是如何在服务和应用程序之间传递复杂对象?

回答

1

您可以使用setData(android.os.Bundle)传递Message中的复杂对象。束需要Parcelable数据,使他们能够被序列化,但对基本类型的ArrayList(如整数和字符串)为了方便支持。如果您的列表中包含自定义对象,你就需要让他们实现Parcelable和使用putParcelableArrayList(String key, ArrayList<? extends Parcelable> value)它们添加到您的包。

如果您的数据相当复杂/结构化,您也可以使用Content Provider进行调查。有一个最初的学习曲线,但供应商非常适用于某些情况下。

相关问题