2012-07-05 73 views
0

我有两个活动,说LoginActivity其中包含登录界面和HomeActivity。在HomeActivity,我已经把一个按钮,调用下面的方法:如何处理父活动当孩子活动完成

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

但是,当我点击这个按钮,随着最后输入凭据登录页面再次出现。相反,我需要一个新的登录页面,或者至少不需要最后输入的凭据。

+0

基于您提供的一些细节的猜测:您需要修改LoginActivity的初始化。 – m0skit0 2012-07-05 11:26:07

+0

尝试在第二个活动按钮中删除finish()和super.finish()按钮单击 – 2012-07-05 11:28:47

+0

什么是开始活动(第一次启动应用程序时运行的活动?) – 2012-07-05 11:29:37

回答

0

根据您的信息

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

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

0

当您启动HomeActivity时,将在LoginActivity中调用finish()方法,这会使LoginActivity被销毁。当您调用startActivity启动LoginActivity时,LoginActivity将实例化一个新的。

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

0

请尝试下面的代码。在的onPause LoginActivity

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

不是不工作:( – Abhinav 2012-07-05 12:19:24

0

写下面的代码(),LoginActivty是起始活性和活性,登录成功后,开始HomePageActivity。要返回LoginActivity,你可以执行以下命令:

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

这是否,何时LoginActivity推出HomePageActivity,也没有呼吁本身(完成()只会工作,即:LoginActivity的情况下仍然必须存在在活动堆栈中)。此外,LoginActivity的launchMode必须是默认的(即:根本没有指定)或“标准”。

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

+0

如果你这样做,每次用户在登录字段中输入内容,然后按HOME键或接听电话,当他返回到应用程序时,这些字段将是空的,这不是一个好的用户体验恕我直言。 – 2013-11-25 11:06:25

相关问题