0

我正在使用此代码发送帖子:

try {
    // Add your data
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
    nameValuePairs.add(new BasicNameValuePair("imagem", "1"));
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

    // Execute HTTP Post Request
    HttpResponse response = httpclient.execute(httppost);

} catch (ClientProtocolException e) {
    // TODO Auto-generated catch block
} catch (IOException e) {
    // TODO Auto-generated catch block
}
v.setEnabled(true);

它在我的模拟器上运行良好。我已经在其他帖子上搜索了如何解决这个问题,我发现的是关于具有互联网权限的 android 清单。这是我的清单:

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />
    <uses-permission android:name="android.permission.INTERNET" />

<application
    android:allowBackup="true"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="imp.projecto.teste.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <activity android:name=".ActivityImagem" />
    <activity android:name=".ActivityVideo" />
    <activity android:name=".ActivityMusica" />
    <activity android:name=".ActivityRadio" />
    <activity android:name=".ActivityOpcoes" />

</application>

我不知道我是否在正确的地方使用了互联网许可代码,以及它是否在做它的工作。我真的需要一些帮助和一些指导。

4

1 回答 1

1

看起来您正试图在主 UI 线程上运行网络请求。自 3.0 以来,Android 不允许您这样做(我相信)。这样做会导致您的 UI 锁定直到请求完成,从而在执行请求期间使您的应用程序无用。

您必须在 newThread或, 中运行您的请求ASyncTask,以承担 UI 线程的负载。您可以在此处找到有关如何使用多个线程的更多信息

于 2013-04-24T13:31:07.447 回答