我正在android应用程序中创建更改密码功能,该功能会在getResponsecode()上崩溃
我提供了onCreate()和新密码方法,在调试时,它会在getResponsecode()上崩溃。它崩溃了,没有得到回应。它不会从服务器获得响应我正在android应用程序中创建更改密码功能,该功能会在getResponsecode()上崩溃,android,performance,android-internet,Android,Performance,Android Internet,我提供了onCreate()和新密码方法,在调试时,它会在getResponsecode()上崩溃。它崩溃了,没有得到回应。它不会从服务器获得响应 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.change_password_activity); list(getInt
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.change_password_activity);
list(getIntent().getExtras().getString("JSON_Object"));
CurrentPwdCheck();
NewpwdCheck();
btnSubmit= (Button) findViewById(R.id.btnSubmit);
btnSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
NewPwd();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
}
});
}
public void NewPwd() throws IOException, JSONException {
String myPwd=new_pwd.getText().toString();
String Surl="http://inmeets.com/ChangePwd.php?uid="+uid+"&NewPwd="+myPwd;
URL url = null;
HttpURLConnection conn = null;
url = new URL(Surl);
conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(1000);
if( conn.getResponseCode()==203) {
Toast.makeText(getBaseContext(), "your password changed", Toast.LENGTH_SHORT).show();
}
}
您不能从主线程执行网络操作,因为它会减慢UI的速度。创建新的AsyncTask以与服务器交互。您也可以使用线程而不是AsyncTask。但AsyncTask最好是好的,因为它比线程中的线程更智能,您必须管理所有事情,比如在后台运行网络调用,并在主线程中更新UI。 如果你真的想要一些不同于AsyncTask的东西,下面是线程的概念
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.change_password_activity);
list(getIntent().getExtras().getString("JSON_Object"));
CurrentPwdCheck();
NewpwdCheck();
btnSubmit= (Button) findViewById(R.id.btnSubmit);
btnSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
NewPasword pwd = new NewPasword();
pwd.start();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
}
});
}
class NewPasword extends Thread{
@Override
public void run() {
String myPwd=new_pwd.getText().toString();
String Surl="http://inmeets.com/ChangePwd.php?uid="+uid+"&NewPwd="+myPwd;
URL url = null;
HttpURLConnection conn = null;
url = new URL(Surl);
conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(1000);
if( conn.getResponseCode()==203) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getBaseContext(), "your password
changed", Toast.LENGTH_SHORT).show();
}
});
}
}
}
在此处放置一些错误日志。android.os.NetworkOnMainThreadException java.io.FileNotFoundException:/sys/devices/system/cpu/cpu0/cpufreq/stats/time\u in\u state:open failed:enoint(无此类文件或目录)您是否使用任何数据库来存储登录凭据?首先打印响应代码,然后决定您的条件。@GowthamSubramaniam不,先生,我正在使用文件系统概念并将其存储在服务器上的html文件中作为后端我使用过php,我应该将php代码放在这里吗?好的,只有异步任务选项吗?要将其从主线程中分离出来?有很多选项,但AsyncTask是最常见的。AsyncTask有问题吗?@Ahamad Anees没有问题async task没有问题调试我的应用程序时从服务器获取响应有问题获取响应AsyncTask会更好更简单。检查您的响应是否等于JSON响应?