Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да свържа Android с PHP и MySQL?

Проблемът е runOnUiThread вътре в AsyncTask. Получавате изключение, защото обвързвате нишката на потребителския интерфейс твърде дълго. Използването на AsyncTask е правилното нещо, което трябва да направите, но вие извиквате runOnUiThread от него, което няма смисъл, защото тогава вече не е асинхронно.

  1. Премахнете частта на runOnUiThread от него от thedoInBackground().
  2. Запазете стойностите, които искате да показвате на екрана като членове на асинхронната задача или като параметър на шаблона за резултати.
  3. Поставете извикванията setText в postExecute, защото това се изпълнява в UI нишката.

Нещо като това:

/**
 * 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. Навигационно меню в Mysql/php дърво

  2. SQL - АКО СЪЩЕСТВУВА АКТУАЛИЗИРАНЕ ДРУГО ВЪВЕТЕ Синтактична грешка

  3. Времето за изчакване на връзката:Nodejs Google App Engine към Cloud MySql

  4. Защо mysql_num_rows($result) връща 1, дори ако $result връща празен набор от резултати?

  5. Docker:не мога да свържа Spring Boot и MYSQL