在Android上使用从互联网上获取的数据填充ListView的正确方法是什么?

时间:2013-06-08 12:25:28

标签: android sqlite listview web background

我知道这是一个理论问题,但问题是我开始使用Android,我已经掌握了基础知识,并知道我想自己构建一个小应用程序,但我希望它能够完成正确的方式

我有一个 ListView ,可以在 SQLite数据库 中显示数据。每次我启动应用时,这些数据都会从网络上更新,每次我使用 ListView 返回 活动 。当我输入我从中选择的那个对象的 DetailView 时,它也会重新更新数据(但仅针对一个对象而不是ListView中收集的所有对象)的 的ListView 即可。

现在,我相信我应该使用 Intent IntentService (在Android中默认已经异步调用)来获取后台数据:

public class DownloadService extends IntentService {
  public DownloadService() {
    super("DownloadService");
  }

  // Will be called asynchronously be Android
  @Override
  protected void onHandleIntent(Intent intent) {
...

但我看到的所有教程实际上都使用了活动,然后调用了一些扩展 AsyncTask 的类:

public class MainActivity extends Activity {
...
// DownloadData AsyncTask
    private class DownloadData extends AsyncTask<Void, Void, Void> {
...

也许我应该使用一种不同的方法,但我真的不需要指向一个教程,我只需要一位经验丰富的Android程序员来告诉我应该怎么做。

1 个答案:

答案 0 :(得分:0)

有两件事应该是异步类型的任务,这是一个很好的设计,类似于你在Marakana Yamba Project尝试完成的任务。这些视频有很多死角,所以我会寻找那些谈论设计的视频,它会给你正确的设计方法。将要提供的点是您已经拥有的异步DownloadData任务,然后您应该在Content Provider上查找该任务。您的DownloadData将处理来自互联网的有效下载,因为收音机喜欢您的电池。内容提供商将以相同的方式工作,但是将数据提供给应用的UI活动。基本推荐的设计类型。

希望这有帮助。