java不断地从后端数据库提取数据?
我不熟悉Android开发和Java,所以请耐心听我说,如果我的措辞或任何东西有错误,请告诉我。我已经搜索了好几个小时,我遇到了很多未知的术语和实现方法,这些术语和实现方法可能有效,也可能无效,以至于我陷入了困惑
我目前正在为安卓应用开发一种feed,我的主要目标是能够下载feed(类似于Gmail应用),并将新输入的数据加载到设备上并显示在屏幕上。我只想在应用程序打开时提取数据
以下是该应用程序的一些背景信息。主活动承载一个内部FragmentPagerAdapter
类,该类控制TabLayout
中的3个片段。第一个标签是feed,第二个是联系人列表(我也想以类似于feed的方式更新),第三个是profile内容
到目前为止,我所做的是在后端服务器(Python/SqlAlchemy)上有一个种子数据库,我在提要和联系人片段中设置了一个AsyncTask
,它获取(使用HttpURLConnection
)所有适当的数据并将其带到客户端。从那里,我从接收到的JSON中提取所需的数据,并将其显示在动态生成的TextViews
中。这部分都很棒
我试过停止/重新启动AsyncTask
,但医生说那是不可能的。我试过notifyDataSetChange()
,但也不起作用。另外,我想确认一下,notifyDataSetChange()
是否会以实现我目标的方式自动更新片段?我已经阅读了一些关于它的文档,并在这里查看了许多主题,但我无法为我的实现提供一个明确的答案,我真的很困惑
那么,有人能告诉我,在AsyncTask
已经运行或正在运行之后,在哪里学习如何从后端数据库连续提取数据?或者至少该如何表达,这样我才能更高效地搜索?谢谢
# 1 楼答案
AsyncTask
是一条路要走。在onResume( )
中,执行AsyncTask
。是的,文档确实说重用AsyncTask
是不可能的。所以你需要这样做:这是一个一次性的更新。定期更新怎么样?最简单的方法是使用
CountDownTimer
定期触发AsyncTask
。文件:http://developer.android.com/reference/android/os/CountDownTimer.html另外,不要创建匿名
CountDownTimer
,而是创建一个扩展它的类。因此,您将有一个名为MyCountDownTimer extends CountDownTimer
的类。在onFinish( )
处,你可以发射AsyncTask
希望有帮助