Android:Intermitent应用程序流问题

时间:2014-01-14 06:15:54

标签: android

我面临着间歇性的应用程序流问题。 在这里,我有一个登录屏幕,我可以第一次登录。但是当我退出和/或重新登录时,我无法进一步遍历。作为一种解决方法,我需要卸载我的应用程序并重新安装它,流程还可以。

任何人都可以就可能的问题向我提供指导。

LoginActivity.java

        GetWebServiceManager passwordExpiryWSManager = new GetWebServiceManager();

        //to check network connectivity (data connection/Wi-Fi)
        ConnectivityManager connectionManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInformation = connectionManager.getActiveNetworkInfo();

        if (networkInformation != null && networkInformation.isConnected() == true) {
            try {
//              passwordExpiryString = passwordExpiryWSManager.execute("http://172.25.164.143:8088/api/Login/GetExpiredPassword/?lContactKey=" + username.getText().toString()).get();
                passwordExpiryString = passwordExpiryWSManager.execute(AppConstants.URL + "/Login/GetExpiredPassword/?lContactKey=" + username.getText().toString()).get();

                jsonObjectPassExpiry = new JSONObject(passwordExpiryString);
                jsonArrayPassExpiry = jsonObjectPassExpiry.getJSONArray("LstLoginDetail");
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (ExecutionException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            /*
             * Converting JSON string response from Webservice into Java Object
             * */
            if (jsonArrayPassExpiry != null) {
                Gson gson = new Gson();
                LoginTO[] loginExpTO = gson.fromJson(jsonArrayPassExpiry.toString(), LoginTO[].class);
                loginListPassExpiry = Arrays.asList(loginExpTO);
                intent = getIntent();

                if (loginListPassExpiry.get(0).getlSuccess() == 1) {
                    intent.setClass(getApplicationContext(), PortfolioSummaryFragmentActivity.class);
//                  intent.putExtra("sToken", loginList.get(0).getsToken());
                    startActivity(intent);
                } else {
                    intent.setClass(getApplicationContext(), PasswordExpiryActivity.class);
//                  intent.putExtra("sToken", loginList.get(0).getsToken());
                    startActivity(intent);
                }
            } else {
                Toast.makeText(getApplicationContext(), "Service is not responding. Please try again later!!", Toast.LENGTH_SHORT).show();
            }
        } else {
            Toast.makeText(getApplicationContext(), "Network connection unavailable. Please check your data plan or Wi-Fi connection!!", Toast.LENGTH_SHORT).show();
        }

Logout.java

public class LogoutActivity extends Activity {
    private TextView successResponse;
    private Intent intent;
    private Button btnLLogin;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.logout_success);

        successResponse = (TextView) findViewById(R.id.txtvwLSuccessMessage);
        btnLLogin = (Button) findViewById(R.id.btnLLogin);

        intent = getIntent();
        successResponse.setText(intent.getStringExtra("successResponse"));
    }

    public void Login(View v) {
        btnLLogin.setTextColor(getResources().getColor(R.color.black));
        intent = new Intent(this, LoginActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
    }

    @Override
    public void onBackPressed() {
        finish();
    }
}

1 个答案:

答案 0 :(得分:1)

请使用intent = new Intent(LogoutActivity.this, LoginActivity.class);代替intent = new Intent(this, LoginActivity.class);

除此之外 最重要的 将android:launchMode="singleTask "添加到活动LoginActivity

的清单中的activity元素