Note that there are some explanatory texts on larger screens.

plurals
  1. POProblem with Async task
    text
    copied!<p>I am trying to get data from a webserver and display a message saying "ok" or "invalid key". While it is getting the data it should produce a progress dialog. I have tried many methods including putting it inside of a thread however inside a thread the alert dialogs won't work. I have tried to use the async task method but it doesnt seem to work either. Can someone help me find a solution? Thanks</p> <pre><code>verifyCode.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { //I surround the async task with the progressdialog so that it should show while the method is working in the background final ProgressDialog progressDialog = ProgressDialog.show( Activate.this, "", "Loading..."); new checkActivationCode().execute(activationCode.toString().toUpperCase() ); progressDialog.dismiss(); } }); public class checkActivationCode extends AsyncTask&lt;String, Void, Void&gt; { @Override protected Void doInBackground(String... activationCode) { // TODO Auto-generated method stub try { DefaultHttpClient httpclient = new DefaultHttpClient(); HttpPost httpost = new HttpPost( "https://iphone-radar.com/accounts/confirmation"); JSONObject holder = new JSONObject(); holder.put("code", activationCode); StringEntity se = new StringEntity(holder.toString()); httpost.setEntity(se); httpost.setHeader("Accept", "application/json"); httpost.setHeader("Content-type", "application/json"); ResponseHandler responseHandler = new BasicResponseHandler(); String response = httpclient.execute(httpost, responseHandler); if (response != null) { org.json.JSONObject obj = new org.json.JSONObject(response); if ("00000000-0000-0000-0000-000000000000".equals(obj .getString("id"))) { new AlertDialog.Builder(Activate.this) .setTitle( getResources().getString( R.string.InvalidKey)) .setMessage( getResources() .getString( R.string.PleaseEntervalidRegistration)) .setNeutralButton("OK", null).show(); } else { // add permanent variables SharedPreferences prefs = getSharedPreferences( "Settings", 0); SharedPreferences.Editor editor = prefs.edit(); editor.putBoolean("ACTIVATED", true); editor.putString("ID", obj.getString("id")); editor.commit(); Intent imTracking = new Intent(Activate.this, ImTracking.class); imTracking.putExtra("ActivationSuccessful", true); // transfer more data startActivity(imTracking); } } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload