2015-11-04 50 views
9

我們嘗試了一切來完成特定的活動,但未能如願。該代碼運行沒有任何錯誤或警告只是無法完成活動。我們與其他論壇一起嘗試了所有解決方案。需要解釋說明。嘗試一切,但android完成();活動不起作用

Android finish() Activity Not working

Android finishing activity not working

android finish activity context

public void HttpSmsRequest(final String Phone){ 
     final ProgressDialog pDialog = new ProgressDialog(this); 
     pDialog.setMessage("Loading..."; 
     pDialog.show(); 



     Map<String, String> jsonParams = new HashMap<String, String>(); 
     // jsonParams.put("param1", youParameter); 
     jsonParams.put("Phone", Phone); 


     //jsonParams.put("rememberMe", "true"; 

     JsonObjectRequest myRequest = new JsonObjectRequest(
       Request.Method.POST, 
       AppGlobal.host+"PhoneVerification/sendSms", 
       new JSONObject(jsonParams), 

       new Response.Listener<JSONObject>() { 
        @Override 
        public void onResponse(JSONObject response) { 

         try 
         { 
          Log.v("Success", "success: " + response.toString()); 
          //MessageBox.Show(ProfileInfoActivity.this, "Response: " + response.toString()); 
          pDialog.dismiss(); 
          JSONObject obj=new JSONObject(response.toString()); 
          // String ID=obj.getString("ID"; 
          String Flag=obj.getString("Flag"; 
          String Message=obj.getString("Message"; 



          // Context context = getApplicationContext(); 
          // 
          /// appPrefs.setUserIdentity(Integer.parseInt(ID)); 



          if(Boolean.parseBoolean(Flag)) 
          { 
           Intent intent=new Intent(PhoneVerificationActivity.this,ConfirmSms.class); 
           intent.putExtra("PhoneNumber", Phone); 
           //intent.setFlags(intent.getFlags() | Intent.FLAG_ACTIVITY_NO_HISTORY); 
           startActivity(intent); 
           finish(); 
           return; 
           //finishActivity(Activity.RESULT_OK); 

          } 
         } 
         catch (Exception ex) 
         { 
          MessageBox.Show(context, ex.getMessage()); 

         } 

         // verificationSuccess(response); 
        } 
       }, 
       new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         //Log.v("Success", "Error: " + error.networkResponse.statusCode); 
         if (error instanceof TimeoutError || error instanceof NoConnectionError) { 
          MessageBox.Show(PhoneVerificationActivity.this, "Error: " + error.toString()); 
          AppController.getInstance().getRequestQueue().cancelAll("tag_json_obj"; 
         } 


         pDialog.dismiss(); 

         //verificationFailed(error); 
        } 
       }) { 

      @Override 
      public Map<String, String> getHeaders() throws AuthFailureError { 

       Map headers = new HashMap(); 
       if (!Preference.getInstance().getCookie().equals("") 
        headers.put("Cookie", Preference.getInstance().getCookie()); 
       return headers; 
      } 

/*@Override 
protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) { 

Map headers = response.headers; 
String cookie = headers.get("Set-Cookie".toString(); 
Preference.getInstance().saveCookie(cookie); 
// MyApp.get().checkSessionCookie(response.headers); 
Log.v("Success", "Response"+response.headers.toString()); 
return super.parseNetworkResponse(response); 
}*/ 
     }; 
     AppController.getInstance().addToRequestQueue(myRequest, "tag_json_obj"; 

    } 
+1

這段代碼是否在Activity中? – Mauker

+0

嘗試這個'PhoneVerificationActivity.this.finish();' – Amy

+0

是它的內部活動@Mauker – MabrurChowdhury

回答

7

嘗試創建您Activity的方法,將調用finish()。然後,從您的onResponse()中調用此方法。

喜歡的東西:

private void killActivity() { 
    finish(); 
} 

然後,在這裏稱之爲:

if(Boolean.parseBoolean(Flag)) { 
    Intent intent=new Intent(PhoneVerificationActivity.this,ConfirmSms.class); 
    intent.putExtra("PhoneNumber", Phone); 
    startActivity(intent); 
    killActivity(); // Here. 
} 
+1

感謝您的解決方案。我試着投你的答案,但我需要15個代表:/ – MabrurChowdhury

+1

沒問題我的朋友。如果它幫助將它標記爲已接受;)很高興它有幫助。 – Mauker

0

檢查代碼中

包括Checkpoint您正確擴展活動以下?

Public class YourActivity extends Activity{ 
    } 

2.如果您正確地擴展活動,Finish()將正常工作。

YourActivity.this.finish(); 

3,如果您使用的對話框,你應該關閉該對話框之前完成活動

Dialog.dismiss(); 

希望可能是其幫助。

快樂編碼:)