Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.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 无论何时想要将数据从安卓c发布到服务器以执行登录,都必须执行异步任务吗_Android_Database_Login - Fatal编程技术网

Android 无论何时想要将数据从安卓c发布到服务器以执行登录,都必须执行异步任务吗

Android 无论何时想要将数据从安卓c发布到服务器以执行登录,都必须执行异步任务吗,android,database,login,Android,Database,Login,在这里,我想从用户输入中获取数据并将其发布到服务器,以便成功登录。我使用url连接方法,想知道如何在代码中实现异步任务 public void onClick(View v) { switch (v.getId()){ case R.id.loginbtn: try { String link = "192.168.0.81/android/login.php";

在这里,我想从用户输入中获取数据并将其发布到服务器,以便成功登录。我使用url连接方法,想知道如何在代码中实现异步任务

  public void onClick(View v) {


        switch (v.getId()){
            case R.id.loginbtn:



                try {

                    String link = "192.168.0.81/android/login.php";
                    username = uname.getText().toString();
                    password = upass.getText().toString();
                    String str = "username=" + username + "&password=" + password;
                    Log.d(TAG, str);

                    String data = URLEncoder.encode("str", "UTF-8") + "=" +
                            URLEncoder.encode(str, "UTF-8");
                    Log.d("ENCODED", data);

                    //connecting sql
                    URL url = new URL(link);
                    URLConnection conn = url.openConnection();

                    conn.setDoOutput(true);
                    OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());

                    wr.write(data);
                    wr.flush();

                    BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));

                    StringBuilder sb = new StringBuilder();
                    String line = null;

                    // read server response
                    while ((line = reader.readLine()) != null) {
                        sb.append(line);
                        sb.toString();
                        break;
                    }

//                    return sb.toString();

                } catch (Exception e) {
                      e.getMessage();
//                      return new String("Exception: " + e.getMessage());
                }



                break;

这不是强制性的,您可以更改线程策略并从UI线程本身进行网络调用,但如果这样做,您会感觉到应用程序由于网络调用而出现延迟。如果您希望应用程序具有响应性,那么必须使用线程或异步任务!了解OkHttp,它是一个网络库。。它比URLConnection非常简单