我在应用程序中显示数据有一个小问题。实际上,为了更新我的数据,我在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);
}
首先,创建一个与Web服务同步的Android应用程序并不是一项简单的任务。您必须注意许多不同的事情才能正确地完成它(这实际上取决于您正在构建的应用程序及其性质)。有时候你可以像@Roshni所说的那样使用AsyncTask与你的webservice进行通信,但恕我直言,这不是你完成这个任务的最佳选择(特别是如果你旋转你的设备;D)。
如果你想要Google+的行为,你必须记住它使用了很多不同的组件:
-
它使用Rest库(如Volley)来消费API。在网络上有很多例子,它非常直观(1,2,3)。可能如果你的应用程序不是很复杂,你可以只使用这个组件,它就足够了。
-
它使用SyncAdapter来与API同步它的内容。
应用中的同步适配器组件封装了在设备和服务器之间传输数据的任务代码。
- 它使用ContentProvider将数据存储在SQL数据库中:
内容提供者管理对结构化数据集的访问。它们封装数据,并提供定义数据安全性的机制。内容提供程序是连接一个进程中的数据与另一个进程中运行的代码的标准接口。
- 它使用CursorLoader在后台查询你需要的数据在你的活动/片段,当某些事情发生时,你可以通知你的观察者加载更多的数据。(这个很好的教程解释了如何使用Wolfram Rittmeyer编写的CursorLoader )。
有很多非常好的开源应用程序可以看看如何解决这类问题,如SeriesGuide, WordPress for Android, ioSched 2013。
可能在你的情况下,如果你的数据很简单,你可以使用Volley和查询你需要的数据,它会为你处理所有异步抓取并通知相应的监听器,然后在你的Activity/Fragment你只需要更新相关的视图