Android 从数据库中提取数据时启动活动

Android 从数据库中提取数据时启动活动,android,Android,我有一个在SQLite数据库中存储数据的应用程序。主要活动只是一个带有单个按钮的屏幕。当用户单击此按钮时,将打开第二个活动。第二个活动是一个列表(ListActivity),它应该包含数据库中的所有记录。问题是:哪种方法更适合:1)单击按钮时,启动AsyncTask,在doInBackground方法中从数据库中提取数据并将提取的数据作为可包裹数组发送到第二个活动;或2)启动第二个活动,在onCreate方法中从数据库中提取数据并在选择数据时显示进度条。我相信这不是基于主要的意见,应该有宝贵的利

我有一个在SQLite数据库中存储数据的应用程序。主要活动只是一个带有单个按钮的屏幕。当用户单击此按钮时,将打开第二个活动。第二个活动是一个列表(ListActivity),它应该包含数据库中的所有记录。问题是:哪种方法更适合:1)单击按钮时,启动AsyncTask,在doInBackground方法中从数据库中提取数据并将提取的数据作为可包裹数组发送到第二个活动;或2)启动第二个活动,在onCreate方法中从数据库中提取数据并在选择数据时显示进度条。我相信这不是基于主要的意见,应该有宝贵的利弊。但我对安卓系统还不熟悉,我正在努力寻找更好的方法。谢谢你的关注

好吧,我认为最好的方法是按一下按钮开始异步任务,然后像你说的那样在doInBackground中处理数据。在第二个活动的onCreate()中显示进度条,在doInBackground()中发送数据并显示项目。从性能上看,这似乎是最好的。

第一种方法对用户不友好。因为当用户按下一个按钮打开不同的活动(在UI方面),那么用户除了要显示一个过渡,而不是卡在第一个活动。实际上,这取决于您的应用程序UX设计。第一种方法还有另一个问题。如果在第一个活动中加载数据,则在调用另一个活动时必须传输许多数据


使用稍微修改过的第二种方法。首先启动第二个活动,然后调用AsyncTask(在onCreate方法中)来加载数据。

这一切取决于您是否希望在第二个活动中预填充数据。但如果我是你,我更喜欢第二种选择。所以,这是用户体验的问题,而不是性能的问题?我只是担心会减慢新活动加载的速度,如果它的本地数据库在加载中看不到任何差异。但如果你想预先评估你的第二项活动,请使用第一种方法。它会对绩效产生怎样的影响?这只是UI体验。在调用onCreate()方法之前,有些想法会发生,有些时间会过去。若您在第一个活动中更早地启动AsyncTask,那个么您应该更快地获得结果。至少我认为是这样。本地数据库操作不会显示任何显著差异。如果这是一个外部电话,那么我同意你的看法。好吧,这取决于你如何定义“重大”差异。这可能不是明显的优势,但我相信在大型应用程序中,每个差异都很重要。是的,我主要关心的是在活动之间发送大量数据。谢谢你的回答。