如何在子Activity完成时处理父Activity

时间:2012-07-05 11:24:05

标签: android android-intent

我有两个活动,比如LoginActivity,其中包含登录用户界面和HomeActivity。在HomeActivity上,我放了一个调用以下方法的按钮:

public void goToLoginPage(View view) {
    finish();
    super.finish();     
    Intent i = new Intent(HomePageActivity.this, LoginActivity.class);
    startActivity(i);
}

但是当我单击此按钮时,将再次显示包含最后输入凭据的登录页面。相反,我想要一个新的登录页面或至少没有最后输入的凭据。

5 个答案:

答案 0 :(得分:0)

在您想要打开下一个活动时成功登录,然后完成()登录活动。通过这样做,下次如果您使用intent开始登录,它将打开一个新的登录页面

答案 1 :(得分:0)

启动HomeActivity时在LoginActivity中调用finish()方法,这将导致LoginActivity被破坏。当您调用startActivity来启动LoginActivity时,LoginActivity将实例化一个新的。

我是android开发的新手,希望能帮到你。

答案 2 :(得分:0)

尝试以下代码。

Intent i = new Intent(HomePageActivity.this, LoginActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
finish();

答案 3 :(得分:0)

在LoginActivity的OnPause()中编写以下代码

protected void onPause()
{
super.onPause();
username.settext("");
password.settext("");
}

答案 4 :(得分:0)

根据您的信息,LoginActivty是启动活动,该活动在成功登录后启动HomePageActivity。要返回LoginActivity,您可以执行以下操作:

Intent i = new Intent(HomePageActivity.this, LoginActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
finish();

只有当LoginActivity启动HomePageActivity时,它才会自动调用finish()(即:LoginActivity的实例必须仍然存在于活动堆栈中)。此外,LoginActivity的launchMode必须是默认值(即:根本不指定)或“标准”。

这将导致LoginActivity的当前实例完成,并且将创建一个新的LoginActivity实例,并将调用onCreate()方法。