有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java不断地从后端数据库提取数据?

我不熟悉Android开发和Java,所以请耐心听我说,如果我的措辞或任何东西有错误,请告诉我。我已经搜索了好几个小时,我遇到了很多未知的术语和实现方法,这些术语和实现方法可能有效,也可能无效,以至于我陷入了困惑

我目前正在为安卓应用开发一种feed,我的主要目标是能够下载feed(类似于Gmail应用),并将新输入的数据加载到设备上并显示在屏幕上。我只想在应用程序打开时提取数据

以下是该应用程序的一些背景信息。主活动承载一个内部FragmentPagerAdapter类,该类控制TabLayout中的3个片段。第一个标签是feed,第二个是联系人列表(我也想以类似于feed的方式更新),第三个是profile内容

到目前为止,我所做的是在后端服务器(Python/SqlAlchemy)上有一个种子数据库,我在提要和联系人片段中设置了一个AsyncTask,它获取(使用HttpURLConnection)所有适当的数据并将其带到客户端。从那里,我从接收到的JSON中提取所需的数据,并将其显示在动态生成的TextViews中。这部分都很棒

我试过停止/重新启动AsyncTask,但医生说那是不可能的。我试过notifyDataSetChange(),但也不起作用。另外,我想确认一下,notifyDataSetChange()是否会以实现我目标的方式自动更新片段?我已经阅读了一些关于它的文档,并在这里查看了许多主题,但我无法为我的实现提供一个明确的答案,我真的很困惑

那么,有人能告诉我,在AsyncTask已经运行或正在运行之后,在哪里学习如何从后端数据库连续提取数据?或者至少该如何表达,这样我才能更高效地搜索?谢谢


共 (1) 个答案

  1. # 1 楼答案

    AsyncTask是一条路要走。在onResume( )中,执行AsyncTask。是的,文档确实说重用AsyncTask是不可能的。所以你需要这样做:

    new MyAsyncTask.execute( url );  
    

    这是一个一次性的更新。定期更新怎么样?最简单的方法是使用CountDownTimer定期触发AsyncTask。文件:http://developer.android.com/reference/android/os/CountDownTimer.html

    另外,不要创建匿名CountDownTimer,而是创建一个扩展它的类。因此,您将有一个名为MyCountDownTimer extends CountDownTimer的类。在onFinish( )处,你可以发射AsyncTask

    希望有帮助