2012-07-05 93 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