java - 尝试了所有方法,但 android finish(); Activity 不工作

标签 java android android-activity

我们尽一切努力完成一项特定 Activity ,但未能如愿。代码运行没有任何错误或警告只是无法完成 Activity 。我们与其他论坛一起尝试了 stackoverflow 中的所有解决方案。需要有解释的解决方案。

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";

    }

最佳答案

尝试在您的 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.
}

关于java - 尝试了所有方法,但 android finish(); Activity 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33514499/

相关文章:

java - 不同平台的SWT jar

java - 指定的子项已经有父项。我缺少什么

android - 如何将 Activity 传递给 android 中的函数

java - Spring MVC 不记录所有异常

java - 如何使用 Scanner 从 Java 中的 STDIN 静默读取?

java - 它可能在 url 中发送数组

android - Web View 未在 API 级别 19 (KITKAT) 中加载

android - 如何从 mp3 中提取元数据?

android - android 中的 java.lang.UnsatisfiedLinkError 错误

java - 当我旋转模拟器时,如何阻止我的 Activity 被破坏?