sql >> データベース >  >> RDS >> Mysql

AndroidをPHPおよびMySQLに接続する方法は?

    問題は、AsyncTask内のrunOnUiThreadです。 UIスレッドを長時間拘束しているため、例外が発生します。 AsyncTaskを使用するのは正しいことですが、その中からrunOnUiThreadを呼び出しています。これは、非同期ではなくなったため、意味がありません。

    1. doInBackground()内からrunOnUiThread部分を削除します。
    2. 非同期タスクのメンバーとして、または結果テンプレートパラメータとして画面に表示する値を保持します。
    3. setText呼び出しはUIthreadで実行されるため、postExecuteに配置します。

    このようなもの:

    /**
     * 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. Microsoft SQL Server2012のクエリがJDBC4.0で数分かかるのに、Management Studioでは1秒かかるのはなぜですか?

    2. SQL Serverのすべてのデータベースのすべてのテーブルを単一の結果セットに一覧表示するにはどうすればよいですか?

    3. SQLServerデータベースをあるインスタンスから別のインスタンスにコピーする方法

    4. Mysqlテーブル名をconcatで名前変更