2015-11-04 5 views
9

特定のアクティビティを完了するためにすべてを試しましたが、失敗しました。コードはエラーや警告なしで実行され、アクティビティを終了できません。私たちは他のフォーラムと一緒にstackoverflowのすべてのソリューションを試しました。説明付きの解決策が必要です。アンドロイドfinish()以外のすべてを試しました。アクティビティが動作しない

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

このコードはアクティビティ内にありますか? – Mauker

+0

この 'PhoneVerificationActivity.this.finish();を試してください – Amy

+0

はい内部のアクティビティ@Mauker – MabrurChowdhury

答えて

7

finish()を呼び出しますあなたのActivity上のメソッドを作成してください。そして、あなたのonResponse()の中からこのメソッドを呼び出します。

ような何か:

private void killActivity() { 
    finish(); 
} 

そして、ここではそれを呼び出す:あなたは正しく活動を拡張1.Are

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

は、あなたのコード内で

を次のことを確認してください?

Public class YourActivity extends Activity{ 
    } 

2.アクティビティを正しく拡張すると、Finish()が正しく機能します。

YourActivity.this.finish(); 

あなたがダイアログを使用3.Ifは、あなたが希望が役に立つかもしれ前に活動を終える

Dialog.dismiss(); 

ダイアログを閉じなければなりません。

ハッピーコーディング:)

関連する問題