在背景中加载图像、视频
Loading Images,Videos in background
我正在尝试制作一个将显示一些图片和视频的应用程序。所以我打算添加一个大约 2 秒的启动画面。 2 秒后,用户将被带到应用程序的主屏幕。
我想在用户位于初始屏幕时开始加载图像、视频,以便用户在主屏幕时等待的时间最少。
因此加载将从启动画面开始,两秒后无论加载是否完成,用户都将被带到主屏幕。
现在,由于这涉及两个活动,我应该使用异步任务还是应该在其中使用带有异步任务的服务(用于代码完成的回调)?
哪个更好。 还有Android8.0使用服务有什么限制吗?
我认为如果编码不当,在两个屏幕之间使用异步任务可能会导致内存泄漏。
任何帮助将不胜感激。
编辑:我的应用程序还有一项功能,因此无法让用户在启动画面中等待,直到加载结束。
所以基本上你想在启动画面中开始下载并在随后的 activity 中继续下载。这样,你还是要实现一个加载动画。对于您的情况,我建议您在下载完所有内容后立即完成启动画面。这样,您就不必再在应用程序的生命周期内下载任何东西。
在 2 个 Activity 之间共享结果时使用 AsyncTask 不是很好,因为在 Splash activity 中创建的 AsyncTack 在切换到 Main activity 时将被销毁(停止)。在这种情况下最好使用服务,主屏幕将订阅结果。
即使切换到新的 activity,AsyncTasks 仍会继续 运行。您可以尝试以下流程:
1. Splash screen
2. Trigger Async Task
3. Main Activity
4. Show Images/Videos
唯一的问题是,您无法确定#2 完成的时间才能开始#4。这就是 AsyncTasks 的本质。您可以通过在 AsyncTask 中使用 OnPostExecute 来解决问题。
示例:OnPostExecute 调用另一个将启用按钮的方法。用户可以点击按钮查看Images/Videos。但是,这可能不是一个很好的用户体验,看到一些按钮突然被启用。
在那种情况下,我宁愿用自己的 Handler
创建一些 Singleton
(在单独的 Thread
中工作),它将在 Splash screen
开始。 Main screen
启动后,它应该向 Singleton
询问各自的数据,或者应该签名接收该数据。
我正在尝试制作一个将显示一些图片和视频的应用程序。所以我打算添加一个大约 2 秒的启动画面。 2 秒后,用户将被带到应用程序的主屏幕。
我想在用户位于初始屏幕时开始加载图像、视频,以便用户在主屏幕时等待的时间最少。
因此加载将从启动画面开始,两秒后无论加载是否完成,用户都将被带到主屏幕。 现在,由于这涉及两个活动,我应该使用异步任务还是应该在其中使用带有异步任务的服务(用于代码完成的回调)?
哪个更好。 还有Android8.0使用服务有什么限制吗?
我认为如果编码不当,在两个屏幕之间使用异步任务可能会导致内存泄漏。
任何帮助将不胜感激。
编辑:我的应用程序还有一项功能,因此无法让用户在启动画面中等待,直到加载结束。
所以基本上你想在启动画面中开始下载并在随后的 activity 中继续下载。这样,你还是要实现一个加载动画。对于您的情况,我建议您在下载完所有内容后立即完成启动画面。这样,您就不必再在应用程序的生命周期内下载任何东西。
在 2 个 Activity 之间共享结果时使用 AsyncTask 不是很好,因为在 Splash activity 中创建的 AsyncTack 在切换到 Main activity 时将被销毁(停止)。在这种情况下最好使用服务,主屏幕将订阅结果。
即使切换到新的 activity,AsyncTasks 仍会继续 运行。您可以尝试以下流程:
1. Splash screen
2. Trigger Async Task
3. Main Activity
4. Show Images/Videos
唯一的问题是,您无法确定#2 完成的时间才能开始#4。这就是 AsyncTasks 的本质。您可以通过在 AsyncTask 中使用 OnPostExecute 来解决问题。
示例:OnPostExecute 调用另一个将启用按钮的方法。用户可以点击按钮查看Images/Videos。但是,这可能不是一个很好的用户体验,看到一些按钮突然被启用。
在那种情况下,我宁愿用自己的 Handler
创建一些 Singleton
(在单独的 Thread
中工作),它将在 Splash screen
开始。 Main screen
启动后,它应该向 Singleton
询问各自的数据,或者应该签名接收该数据。