2015-04-23 146 views
-6

错误显示:致命的异常:的AsyncTask#在onPostExecute(....)错误显示:致命的异常:的AsyncTask#1

Intent i = new Intent(getApplicationContext(), AllProductsActivity.class); 
startActivity(i); 
finish(); 
public class NewProductActivity extends Activity { 
    private ProgressDialog pDialog; 
    JSONParser jsonParser = new JSONParser(); 
    EditText inputName; 
    EditText inputPrice; 
    EditText inputDesc; 
    private static String url_create_product = "http://127.0.0.1/android_connect/create_product.php"; 
    private static final String TAG_SUCCESS = "success"; 
    static List<String> citations = null; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.add_product); 
     inputName = (EditText) findViewById(R.id.inputName); 
     inputPrice = (EditText) findViewById(R.id.inputPrice); 
     inputDesc = (EditText) findViewById(R.id.inputDesc); 
     Button btnCreateProduct = (Button) findViewById(R.id.btnCreateProduct);  
     btnCreateProduct.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View view) { 
       // creating new product in background thread 
       new CreateNewProduct().execute(); 
      } 
     }); 
    } 

    class CreateNewProduct extends AsyncTask<String, String, String> { 

     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      pDialog = new ProgressDialog(NewProductActivity.this); 
      pDialog.setMessage("Creating Product.."); 
      pDialog.setIndeterminate(false); 
      pDialog.setCancelable(true); 
      pDialog.show(); 
     } 
     protected String doInBackground(String... args) { 
      String name = inputName.getText().toString(); 
      String price = inputPrice.getText().toString(); 
      String description = inputDesc.getText().toString(); 
      List<NameValuePair> params = new ArrayList<NameValuePair>(); 
      params.add(new BasicNameValuePair("name", name)); 
      params.add(new BasicNameValuePair("price", price)); 
      params.add(new BasicNameValuePair("description", description)); 
      JSONObject json = jsonParser.makeHttpRequest(url_create_product, 
        "POST", params); 
      Log.d("Create Response", json.toString()); 
      try { 
       int success = json.getInt(TAG_SUCCESS); 
       if (success == 1) { 
        Intent i = new Intent(getApplicationContext(), AllProductsActivity.class); 
        startActivity(i); 
        finish(); 
       } else { 
       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 

      return null; 
     } 

     protected void onPostExecute(String file_url) { 
      pDialog.dismiss(); 
     } 
    } 
} 
+0

finish();Intent' CreateNewProduct'类需要大量改进才能正确实现'AsyncTask',如果用户按下'btnCreateProduct''多于一个tim è? –

+0

请发表[logcat](https://politecuriosity.files.wordpress.com/2013/05/logcat.jpg)。 – Gattsu

回答

1

移动,一定不要调用在doInBackground(....)

相关问题