【问题标题】:How can I update my data into my activity?如何将我的数据更新到我的活动中?
【发布时间】:2014-06-09 06:35:23
【问题描述】:

在我的应用程序中显示数据时遇到了一个小问题。实际上,为了更新我的数据,我在 onCreate() 方法中编写了所有方法。所以问题是只有显示的所有数据都将启动。

但是我需要先显示一些数据,然后我会在后台更新剩余的数据。所以请告诉我在哪里可以写其他方法。

代码:

     protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.summary_main);


        displyProfile(personalDetailsInfo);

        displyConditions();

        displayAllergies();
        displayWellness();
        displayVaccine(vaccineHashMap);

       }

【问题讨论】:

  • i will update remaining data in the background 您无法在后台线程中更新您的视图。
  • 不,我认为这是可能的。如果您看到他们只是在后台更新的 google+ 应用程序。
  • 如果您使用 AsyncTask 从服务器获取数据然后将其显示到视图中,接口概念可能会有所帮助!
  • 只有网络/数据库操作将在后台线程中运行,屏幕重新加载/刷新将在 UI 线程中完成

标签: java android web-services oncreate dynamic-data-display


【解决方案1】:

首先,创建一个与 Web 服务同步的 Android 应用并不是一项简单的任务。您必须注意很多不同的事情才能正确完成(这实际上取决于您正在构建的应用程序及其性质)。正如@Roshni 所说,有时您可以使用 AsyncTask 与您的网络服务进行通信,但恕我直言,这不是您完成此任务的最佳选择(特别是如果您旋转设备;D)。

如果您想要 Google+ 的行为,您必须记住它使用了许多不同的组件:

  • 它使用 Rest 库(如 Volley)来使用 API。网络上有很多例子,而且非常直观(123)。如果您的应用程序不是很复杂,您可能只使用这个组件就足够了。

  • 它使用SyncAdapter 将其内容与 API 同步。开发者文档对这个组件这么说:

您应用中的同步适配器组件封装了在设备和服务器之间传输数据的任务的代码。

内容提供商管理对结构化数据集的访问。它们封装数据,并提供定义数据安全性的机制。内容提供程序是将一个进程中的数据与另一个进程中运行的代码连接起来的标准接口。

  • 它使用CursorLoader 在后台查询您在Activity/Fragment 中需要的数据,当某些事情发生时,您可以通知您的观察者加载更多数据。 (This good tutorial 解释了如何使用 Wolfram Rittmeyer 编写的 CursorLoader。

有很多非常好的开源应用程序可以查看如何解决此类问题,例如 SeriesGuideWordPress for AndroidioSched 2013

可能在您的情况下,如果您的数据很简单,您可以使用 Volley 并查询您需要的数据,它将为您处理所有异步获取并通知相应的侦听器,然后在您的 Activity/Fragment 中您只需更新相关的意见。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 2017-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多