从ContentProvider获取数据并在Activity生命周期内发出http请求

时间:2013-11-06 03:42:23

标签: android android-asynctask android-activity

我的应用启动时需要连续两次操作:

1)通过ContentProvider数据库中的sqlite获取一些数据,

2)发出http请求(或多个)以从外部服务获取数据。

在Activity生命周期的什么时候我应该启动执行这些操作的AsynTask? onCreate罚款吗?如果我此时运行它,我是否可以访问所有对象(ContentProvider和我可能需要的任何http请求)?

2 个答案:

答案 0 :(得分:0)

是的,您可以在onCreate方法中执行此操作。 不过要小心。不要阻止UI线程。 当你从本地数据库中获取数据或者在调用webervice时,让使用看到一些东西。 您可以在后台进程中显示不确定的进度条。

答案 1 :(得分:0)

onCreate是启动此操作的好地方。但请记住,因为onCreate()在Activity的整个生命周期中只会被调用一次,所以你也应该保存数据。

此外,如果您的应用中有splash screen,而此活动(您正在获取数据)位于启动画面旁边,那么我个人会在启动画面中获取所有数据,这样可以节省一些时间作为启动画面非操作屏幕,我使用此屏幕初始化重资源。