当我的应用程序启动时,我需要执行两个连续的操作:
ContentProvider
1)通过a从sqlite
数据库中获取一些数据,
2) 发出一个(或多个)http 请求以从外部服务获取数据。
我应该在 Activity 生命周期的哪个时间点启动一个 AsynTask 来执行这些操作?onCreate
还好吗?如果我此时运行它,我是否可以访问所有对象(包括 ContentProvider 和我可能需要的 http 请求)?
当我的应用程序启动时,我需要执行两个连续的操作:
ContentProvider
1)通过a从sqlite
数据库中获取一些数据,
2) 发出一个(或多个)http 请求以从外部服务获取数据。
我应该在 Activity 生命周期的哪个时间点启动一个 AsynTask 来执行这些操作?onCreate
还好吗?如果我此时运行它,我是否可以访问所有对象(包括 ContentProvider 和我可能需要的 http 请求)?
是的,您可以在 onCreate 方法中执行此操作。但小心点。不要阻塞 UI 线程。当您从本地数据库获取数据或调用 webervice 时,让用户看到一些东西。您可以在后台进程中显示不确定的进度条。
onCreate
是启动此操作的好地方。但是请记住,因为onCreate()
在 Activity 的整个生命周期中只会被调用一次,所以你也应该保存数据。
此外,如果您splash screen
的应用程序中有此活动(您正在其中获取数据)在启动屏幕旁边,那么我个人会在启动屏幕中获取所有数据,它将节省一些时间作为启动屏幕非操作屏幕和我使用这个屏幕来初始化大量资源。