2012-04-19 28 views
1

我有一个活动和一个intentService,我的intentServie从web获取一些数据并需要将它传递回活动。我目前在服务中使用ResultReceiver将数据传递回活动。将数据返回到activity,intent.putExtra或contentprovider?

是否适合larg数据集?

Do Intents对通过putExtra传递的数据有任何限制吗?

我应该如何更新主要活动的UI(ListView)?(不会是大数据集被绞死?

我应该使用的ContentProvider呢?如果是的话,我将如何查询大数据集在UI线程(而不会导致ANR)?

感谢。

回答

1
  • 没有,它不适合通过意向
  • 发送大量的数据据我记得,有一次我试图发送这是上面 1MB字节的数据,这是无法ŧ o这样做。所以我相信,它确实有数据 限制
  • 由于您使用ResultReceiver,所以最好是使用它的 onReceiveResult得到的结果通知,并做任何必需的更新您的UI
  • 如果您的应用程序本身不提供数据到其他应用程序,然后我猜它太 大惊小怪
+0

如果我不使用意图通过大量的数据(如你所说),那么我应该怎么过(不使用的ContentProvider) ?我目前在onReceiveResult中收到的其他东西,但如果我更新OnReceiveResult中的列表(我猜它也在UI线程中),它不会挂起UI。 – SohailAziz 2012-04-19 08:08:34

+0

更新列表不应该挂起,如果确实如此,则使用AsyncTask。关于大意图,我会建议您使用'getFilesDir()'将文件包或Parcelable对象保存在一个私有文件中,使用常规方法(intent通过广播,ResultReceiver或任何您的模式)通知对方,以及然后读取该文件来构建对象并最终删除该文件。我在我的一个项目中做到了这一点,它的工作完美无缺,没有任何延迟问题。这样,你的意图将保持在小规模 – waqaslam 2012-04-19 08:14:28

相关问题