Splashscreen上的Android异步任务

Splashscreen上的Android异步任务,android,android-asynctask,Android,Android Asynctask,我在做一个项目。想要此应用程序的人不希望智能手机访问数据库。所以他们把xml文件放在网上。当应用程序第一次安装时,我读取本地sqlite数据库中的xml,以便他们可以脱机访问数据 现在xml文件被加载到sqlite中。加载xml文件不需要很长时间,但足够长的时间将其放入een异步任务中。现在我不知道制作一个splashscreen并在异步任务中运行xml解析是否明智。或者如果我需要在其他时间做这个 有人能解决这个问题吗 谢谢 我认为这取决于您如何处理错误,例如,您的服务器已关闭,或者用户的int

我在做一个项目。想要此应用程序的人不希望智能手机访问数据库。所以他们把xml文件放在网上。当应用程序第一次安装时,我读取本地sqlite数据库中的xml,以便他们可以脱机访问数据

现在xml文件被加载到sqlite中。加载xml文件不需要很长时间,但足够长的时间将其放入een异步任务中。现在我不知道制作一个splashscreen并在异步任务中运行xml解析是否明智。或者如果我需要在其他时间做这个

有人能解决这个问题吗


谢谢

我认为这取决于您如何处理错误,例如,您的服务器已关闭,或者用户的internet连接出现问题。Splashscreen可以加载显示活动本身所需的资源,但我不认为让用户在后台等待它运行
AsyncTask
s是一个好主意,它可能会让您的应用程序看起来很慢=>糟糕的用户体验。

首先,当然,任何包含网络和数据库查找的操作都应该在单独的线程中完成(使用
AsyncTask
是个好主意)。然后,有两种方法来实现您的逻辑:

  • 如果在将数据提取并放入数据库之前,用户无法对应用程序执行任何操作,那么您可能应该显示某种
    ProgressDialog
    ,告诉用户您的应用程序正在为工作做准备
  • 如果有其他选项不需要来自Internet的数据,则必须完全在后台运行数据获取操作,让用户与应用程序交互

  • 希望这有帮助。

    没有数据,应用程序是否正常运行?如果不是,则可能是一个
    AsyncTask
    任务,并且在进行初始准备时会在屏幕上显示进度更新/启动。不,您需要数据。因此,第一次我将在splash上的asynctask中加载数据。并使用progressbar向用户提供反馈。。谢谢你的快速回复!这才是我真正害怕的。但如果没有这些数据,应用程序就无法工作。所以我需要做出选择。目前我还没有看到其他解决方案,那就是飞溅。你会如何解决这个问题?我认为你应该和那些想要应用程序的人谈谈,如果没有连接,他们对不在应用程序中显示任何内容有什么感觉。他们是否希望您缓存最后得到的xml?你只需要拉一个更新的版本和更新你的用户界面。无论如何,困在SplashScreen中不是一个好主意,所以不要这样做。如果我把xml文件放在应用程序上,这会是一个好主意吗。因此,当他们没有internet访问权限时,我可以解析xml文件。(并让他们知道他们有旧版本的db),但他们可以使用该应用程序。在他们访问互联网的那一刻,我检查是否有更新?对于数字1,你的意思是,如果你的应用程序的逻辑允许的话,还可以使用progressbar/dialog?@user1110599进行某种飞溅-当然可以。另外,我建议您实现一个服务和一个广播接收器来监听连接信息。当您的用户连接到网络时,该服务可以在后台下载数据,使您的应用程序在用户打开时准备就绪。@user1110599,是的,ProgressDialog是这种情况下的最佳做法之一。我有另一种解决方案。我已经制作了一个sqlite数据库,并将与应用程序一起安装它。现在我做了一些研究,如果我了解它的工作方式,你需要将数据复制到数据库中吗?如下链接所示: