Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để kết nối Android với PHP và MySQL?

Vấn đề là runOnUiThread bên trong AsyncTask. Bạn nhận được ngoại lệ vì bạn đã buộc chuỗi giao diện người dùng quá lâu. Sử dụng AsyncTask là điều nên làm, nhưng bạn đang gọi runOnUiThread từ bên trong nó, điều này không có ý nghĩa gì vì khi đó nó không còn là không đồng bộ nữa.

  1. Xóa phần runOnUiThread của nó khỏi bên trong thedoInBackground ().
  2. Giữ các giá trị bạn muốn hiển thị trên màn hình các thành viên của nhiệm vụ không đồng bộ hoặc dưới dạng tham số mẫu kết quả.
  3. Đặt các lệnh gọi setText trong postExecute, vì lệnh đó được chạy trên UIthread.

Một cái gì đó như thế này:

/**
 * Background Async Task to Get complete person details
 * */
class CheckLogin extends AsyncTask<String, String, String> {

    JSONArray productObj;

    /**
     * Before starting background thread Show Progress Dialog
     * */
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        pDialog = new ProgressDialog(AndroidPHPConnectionDemo.this);
        pDialog.setMessage("Loading person details. Please wait...");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(true);
        pDialog.show();
    }

    /**
     * Getting person details in background thread
     * */

    @Override
    protected String doInBackground(String... arg0) {
        // TODO Auto-generated method stub

                int success;
                try {
                    // Building Parameters
                    List<NameValuePair> params = new ArrayList<NameValuePair>();
                    params.add(new BasicNameValuePair("pid", pid));

                    // getting person details by making HTTP request
                    // Note that person details url will use GET request
                    JSONObject json = jsonParser.makeHttpRequest(
                            url_check_login, "GET", params);

                    // check your log for json response
                    Log.d("Single person Details", json.toString());

                    // json success tag
                    success = json.getInt(TAG_SUCCESS);
                    if (success == 1) {
                        // successfully received person details
                        productObj = json
                                .getJSONArray(TAG_PERSON); // JSON Array

                    }

                    else {
                        // product with pid not found
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }

        return null;
    }

    /**
     * After completing background task Dismiss the progress dialog
     * **/
    protected void onPostExecute(String file_url) {
        // dismiss the dialog once got all details


        if ( productObj != null ) {
            // get first product object from JSON Array
            JSONObject person = productObj.getJSONObject(0);

            et.setText(person.getString(TAG_NAME));
            pass.setText(person.getString(TAG_pass));

            Log.e("success in login", "SUCCESS IN LOGIN");
        }

        pDialog.dismiss();
    }
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kiểm tra độ dài tối đa của những ngày liên tiếp đáp ứng điều kiện cụ thể

  2. MySQL:Điều gì xảy ra với các trường không được tổng hợp trên một GROUP BY?

  3. KHÓA CHÍNH ngẫu nhiên cho Innodb

  4. Nhận đường dẫn cây trong bảng MySQL

  5. Tính tổng kích thước dữ liệu của cột BLOB trong bảng