AsyncTask over Multiple Activities?

spi*_*ce7 2 service android android-asynctask android-activity

嘿伙计们,我只能在这上面找到1个帖子,而且它并没有真正回答我的问题,所以我要求自己.

我的应用程序正在下载和解析rss文件,我显然决定在后台任务中执行此操作.我选择了AsyncTask,我试图让它开始下载,然后调出rss feed的列表视图.从那里我希望来自其他活动的AsyncTask在加载它时将现在解析的信息传递给新的列表视图活动.我无法弄清楚如何将我的AsyncTask对象的引用传递给我的新活动而不实现parcelable并将其添加到bundle中,这对我来说是一个巨大的混乱.有一个更好的方法吗?

我也看到其他人推荐开始服务.这样做有什么好处?谢谢!

〜斯科特

run*_*r49 9

这正是使用服务的情况.AsyncTask用于在UI线程上执行操作(实际上是一个便利类).

你正在做什么应该继续服务,因为你不一定关心UI线程,因为你不会在同一个活动中显示.

以下是你应该如何做到这一点:

1)创建服务并处理RSS提要2)服务内部应该使用ContentResolver将结果存储在数据库中3)让ListActivity中的ListAdapter监听与服务更新相同的CONTENT_URI上的更改.这将在添加或删除行时自动更新列表,没有任何ANR,因为它们都在后台线程上

其他一些优点是您可以在后台同步而无需打开UI.这对于RSS应用程序非常有用,因为您并不总是希望等待用户启动同步.

  • 我真的建议看这个.它有点冗长,但一旦完成,您将真正了解该怎么做:http://www.youtube.com/watch?v = xHXn3Kg2IQE (3认同)