sql >> Database >  >> RDS >> Mysql

Hoe Android verbinden met PHP en MySQL?

Het probleem is de runOnUiThread in de AsyncTask. Je krijgt de uitzondering omdat je de UI-thread te lang vastbindt. Het gebruik van een AsyncTask is het juiste om te doen, maar je roept runOnUiThread van binnenuit aan, wat geen zin heeft omdat het dan niet langer asynchroon is.

  1. Verwijder het runOnUiThread-gedeelte ervan vanuit thedoInBackground().
  2. Bewaar de waarden die u op het scherm wilt weergeven als leden van de asynchrone taak of als de resultatensjabloonparameter.
  3. Zet de setText-aanroepen in de postExecute, want die wordt uitgevoerd op de UIthread.

Zoiets als dit:

/**
 * 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. waarom sql met 'exists' langzamer werkt dan 'in' met MySQL

  2. Sta gebruikers toe om een ​​reactie eenmalig te beoordelen PHP MySQL

  3. MYSQL FOUT 1096 - GEEN TABELLEN GEBRUIKT - CODEIGNITER

  4. Een kolom bijwerken met een AANTAL andere velden is SQL?