为了账号安全,请及时绑定邮箱和手机立即绑定

android-android.os.networkOnMainThreadException

android-android.os.networkOnMainThreadException

千巷猫影 2019-07-01 10:29:05
我有一个例外,我读到了一条关于这个的帖子,它似乎令人困惑:如何修复android.os.networkOnMainThreadException?我已经在我的舱单上加上了这一行:<uses-permission android:name="android.permission.INTERNET" />在那次讨论中,他们谈到了应用程序的主要执行线程无法进行联网。我想知道的是如何重构我的代码,使其与Android良好实践相一致。以下是我的活动课:package com.problemio;import java.io.InputStream;import java.util.ArrayList;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;public class LoginActivity extends Activity {     public void onCreate(Bundle savedInstanceState)      {         super.onCreate(savedInstanceState);         setContentView(R.layout.login);         // Show form for login_email         final EditText loginEmail = (EditText) findViewById(R.id.login_email);           String name = loginEmail.getText().toString();           // Show field for password           final EditText password = (EditText) findViewById(R.id.password);           String text = password.getText().toString();                           // Show button for submit         Button submit = (Button)findViewById(R.id.submit);            // Show options for create-profile and forgot-password         submit.setOnClickListener(new Button.OnClickListener()          {              public void onClick(View v)             {               String email = loginEmail.getText().toString();               String pass = password.getText().toString();                sendFeedback(pass, email);             }         });             }我在这里做错了什么,我怎样才能解决它?:)谢谢!android-android.os.networkOnMainThreadException
查看完整描述

3 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

NetworkOnMainThreadException:当应用程序试图在其主线程上执行网络操作时引发的异常。

您应该在异步任务上调用send反馈方法,这样只有上面的代码才能工作。由于webserver需要大量时间来响应,主线程变得没有响应。为了避免它,您应该在另一个线程上调用它。因此异步任务更好。

这是链接,它说明了如何使用异步任务。


查看完整回答
反对 回复 2019-07-01
  • 3 回答
  • 0 关注
  • 461 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信