2011-09-27 62 views
2

林目前正在開發的Android應用程序,該應用程序的第一個屏幕是LoginActivity,它與Facebook的驗證和顯示在用戶請求Facebook登錄對話框。整個登錄過程非常順利,當你登錄的用戶被帶到一個新的活動。我已經在該活動中創建了一個註銷功能,用於在整個應用程序中將用戶從Facebook中註銷,但是。如果您在用戶處於您登錄時的活動狀態時按下了Android設備上的「後退按鈕」,則顯示該用戶的登錄活動。我想讓用戶無法顯示登錄活動,但我不知道如何。當成功地從beggining以下行登錄的用戶都拼命地跑:登錄活動問題

 Intent intent = new Intent().setClass(LoginActivity.this, LocationActivity.class); 
     startActivity(intent); 

,並在用戶成功地從在MainActivity註銷以下行符文:

ApplicationController appController = (ApplicationController)getApplicationContext(); 
      appController.setfullnametoNull(); 
      appController.setuseridtoNull(); 
      finish(); 

任何建議,就如何使用戶在當前登錄時無法訪問登錄活動?

+0

意向意圖=新意圖()setClass(LoginActivity.this,LocationActivity.class)。 ???它應該是這樣的:Intent intent = new Intent(LoginActivity.this,LocationActivity.class); – Houcine

+0

爲什麼?這似乎對我有用。 :s – parek

回答

1

finish()活動,如果用戶瀏覽到其他應用程序,而不log out,那麼你應該check in the login activity時候回來的應用程序和用戶重定向到appropriate activity。您需要爲此保存login credentials。你可以使用SharedPreferences

0

使用您從登錄活動後開始的活動發送的廣播意圖。然後使用登錄活動作爲廣播意圖的接收者。然後,您可以使用此廣播爲登錄活動調用finish()。這樣登錄活動應該離開android活動棧。

+0

那廣播意圖是怎麼工作的,你有我的樣品嗎? – parek

0

不知道如果我理解你的問題正確......你的意思是你登錄後,另一個活動啓動用戶點擊後退按鈕,並且活動再次顯示?

如果是:您可以通過使用startActivityForResult(intent, REQUEST_CODE)而不是使用startActivity(intent)開始活動來阻止此操作。

然後,你必須添加這個方法:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == REQUEST_CODE) { 
     finish(); 
    } 
}