Android:可以在Activity中的onCreate之外放置HTTP请求吗?

时间:2011-12-07 12:02:34

标签: android oncreate

我是Android新手并试图找出放置HTTP请求的位置,以便只执行一次(当Activity首次显示时)。从onActivityResult返回时总是调用onCreate(在这里从相机中获取图片)

有什么建议吗?

3 个答案:

答案 0 :(得分:5)

onCreate(Bundle savedInstanceState)如果savedInstanceStatenull,那么它就是活动的第一个/干净的开始。所以你可以这样做:

onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (savedInstanceState == null) {
        // call HTTP request
    }

    ... the rest of onCreate()
}

答案 1 :(得分:1)

如果在第一次在onCreate中进行调用时设置标志,然后每次调用onCreate(和您的代码)时都检查它。完整性活动生命周期记录在此处:http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

答案 2 :(得分:0)

OnCreate()可能不是一个糟糕的地方,如果你在活动开始时总是执行它或者你已经准备好检查是否已经完成(如其他答案也建议的那样)。您可以为此目的在SharedPreferences中设置一个标志,因为此标志也可以在完全关闭应用程序并重新启动后继续存在。

话虽如此:如果您想在Honeycomb甚至Ice Cream Sandwich上使用您的应用程序,您仍然需要将http请求放在后台线程中,因为如果有任何网络访问权限,这些系统会终止应用程序UI线程。