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