2016-10-27 17 views
-1

我正在編制目錄項目。用於列出產品的MainActivity和用於查看或編輯產品的ViewProductActivity。在ViewProductActivity中有「取消」按鈕來關閉ViewProductActivity,然後返回到MainActivity,還有「刪除」選項菜單從數據庫中刪除我的產品。如果我點擊取消按鈕它沒有問題,MainActivity的onResume方法被調用。但是當我點擊'detele'選項菜單,刪除過程後,應用程序將返回到MainActivity。但問題是MainActivity的onResume根本沒有被調用。我確保使用Log。onResume在調用完其他類中的其他活動的finish()後不會調用

我看過this和其他威脅,但沒有得到答案 這是一段代碼。

MainActivity的

@Override 
protected void onResume() { 
    super.onResume(); 
    Log.i("zihad", "onResume"); 
    if (isInternetAvailable()) { 
     myCatalogData.arrayAdapterAllData(myListAdapter); 
    } else { 
     Toast.makeText(this, "No internet connection", Toast.LENGTH_SHORT).show(); 
    } 
} 

ViewProductActivity

btCancel.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     finish(); 
    } 
}); 

requestQueue = Volley.newRequestQueue(this); 
CatalogDataHelper myCatalogData = new CatalogDataHelper(this, requestQueue); 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    if (item.getItemId() == R.id.action_delete) { 
     new AlertDialog.Builder(this) 
       .setTitle("Confirmation") 
       .setMessage("Do you really want to delete this product?") 
       .setIcon(android.R.drawable.ic_dialog_alert) 
       .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int whichButton) { 
         if (isInternetAvailable()) { 
          myCatalogData.deleteProduct(String.valueOf(idProduct)); 
         } else { 
          Toast.makeText(ViewProductActivity.this, "No internet Connection", Toast.LENGTH_SHORT).show(); 
         } 
        }}) 
       .setNegativeButton(android.R.string.no, null) 
       .show(); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

CatalogDataHelper

public CatalogDataHelper(final Activity activity, RequestQueue requestQueue) { 
    this.activity = activity; 
    this.requestQueue = requestQueue; 
} 
public void deleteProduct(final String id) { 
    final ProgressDialog progressDialog = ProgressDialog.show(activity, "Deleting product", "Please wait ..."); 
    StringRequest myStringRequest = new StringRequest(Request.Method.POST, MainActivity.URL_SERVER + "/deleteproduct.php", 
      new Response.Listener<String>() { 
       @Override 
       public void onResponse(String jsonResponse) { 
        progressDialog.dismiss(); 
        try { 
         JSONObject jObject = new JSONObject(jsonResponse); 
         if (jObject.getBoolean("success")) { 
          Toast.makeText(activity, "Product has been deleted", Toast.LENGTH_SHORT).show(); 
          activity.finish(); //close ViewProductActivity and return to MainActivity 
         } 
        } catch (JSONException e) { 
         Toast.makeText(activity, "Server error", Toast.LENGTH_SHORT).show(); 
         e.printStackTrace(); 
        } 
       } 
      }, 
      new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        progressDialog.dismiss(); 
        show_error(error); 
       } 
      }) { 
     @Override 
     protected Map<String, String> getParams() throws AuthFailureError { 
      Map<String, String> mapParam = new HashMap<>(); 
      mapParam.put("id", id); 

      return mapParam; 
     } 
    }; 
    requestQueue.add(myStringRequest); 
} 
+0

給予你肯定的方式'的onResume()'不叫?你能發佈代碼嗎? – ZeroOne

+1

歡迎來到StackOverflow。在詢問有關編程問題之前,請先[**閱讀本文**](http://stackoverflow.com/help/how-to-ask)。否則,不要希望得到正確的答案。 – poring91

回答

0

你應該嘗試ŧ他在ViewProductActivity類代碼: -

Intent i = new Intent(ViewProductActivity.this, MainActivity.class); 
startActivity(i); 
ViewProductActivity.this.finish(); 
0

你叫super.onResume()中的onResume()?

正確處理的onResume下面

@Override 
protected void onResume() { 
    //Your code to finish activity 
    super.onResume(); 
}