Android冰激凌SandWhat与姜饼HTTP Post

Android冰激凌SandWhat与姜饼HTTP Post,android,android-asynctask,http-post,Android,Android Asynctask,Http Post,对安卓系统来说相当陌生,并使用安卓2.3.5(姜饼)创建/测试了我的应用程序。我有多个数据库连接,我使用了HTTPPOST(但没有使用AsyncTask),一切都很好。然后我在Android 4.0.3(冰激凌SandWhat)上测试了它,但我无法连接到数据库,因此我的应用程序无法运行 不知道我需要考虑什么才能让这个工作程序在冰淇淋沙盘上运行?我确实将数据库连接移出了UI线程(但不是AsyncTask),但它仍然没有连接 这是我在UI线程之外创建的类: 公共类InputsRecapGetTask

对安卓系统来说相当陌生,并使用安卓2.3.5(姜饼)创建/测试了我的应用程序。我有多个数据库连接,我使用了HTTPPOST(但没有使用AsyncTask),一切都很好。然后我在Android 4.0.3(冰激凌SandWhat)上测试了它,但我无法连接到数据库,因此我的应用程序无法运行

不知道我需要考虑什么才能让这个工作程序在冰淇淋沙盘上运行?我确实将数据库连接移出了UI线程(但不是AsyncTask),但它仍然没有连接

这是我在UI线程之外创建的类:

公共类InputsRecapGetTask{

public InputsRecapGetTask(InputsRecap activity,
        ProgressDialog progressDialog) {
    this.activity = activity;
    this.progressDialog = progressDialog;

    getDatabase();

}

public void getDatabase() {
    // TODO Auto-generated method stub
    progressDialog.show();

    // create new default httpClient
            HttpClient httpclient = new DefaultHttpClient();
            // create new http post with url to php file as pararmenter
            HttpPost httppost = new HttpPost(
                    "http://test.com/returnBBD.php");

            // assign input text to strings
            user = Login.userStatic;

你检查日志了吗?IIRC,Android 4要求http请求不是从主线程完成的。必须有一条消息告诉你这一点

另一方面,请记住

  • 如果打开屏幕,创建异步任务的活动可能会 从屏幕上删除(永久)并替换为另一个 活动;它(第一个活动)将收到结果,但不会显示任何内容

  • 在Android 4中,默认情况下,所有异步任务都由单个服务器提供服务 线程;这保证响应按照 发出请求,但也意味着第二个请求将仅在 第一个完成(或超时)


  • 根据MVC,数据检索必须由模型完成,而不是由控制器(活动)完成它的生命周期就是视图的生命周期。

    使用asynctask。asynctask应该可以工作,这是大多数人的建议。我在自己的类中尝试了asynctask,但仍然出现崩溃。数据库检索是在UI中使用的,因此根据logcat,我相信这就是问题的根源。我尝试将asynctask移动到或者设置ContentView,但这也不能解决问题。更新:我使用了AsyncTask并将任务移动到屏幕上,以确保在新UI之前将其上载。这修复了冰淇淋三明治中的崩溃问题。谢谢!