Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我正在android应用程序中创建更改密码功能,该功能会在getResponsecode()上崩溃_Android_Performance_Android Internet - Fatal编程技术网

我正在android应用程序中创建更改密码功能,该功能会在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

我提供了onCreate()和新密码方法,在调试时,它会在getResponsecode()上崩溃。它崩溃了,没有得到回应。它不会从服务器获得响应

 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响应?