0

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

我有一个ListView显示SQLite DB中的数据。每次我启动应用程序时,以及每次我返回这个带有ListView的Activity时,这些数据都会从网络上更新。此外,当我输入从ListView选择的该对象的DetailView时,它也会重新更新数据(但仅针对一个对象而不是 ListView 中收集的所有对象)。

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

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

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

但是我看到的所有教程实际上都使用了一个Activity然后调用和一些扩展AsyncTask的类:

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

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

4

1 回答 1

0

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

希望这可以帮助。

于 2013-07-31T03:47:01.010 回答