2016-08-02 88 views
0

這種情況是,如果用戶第一次下載應用程序,我問他們的基本問題(說活動A),並要求他們註冊(活動B)。如何記住用戶註冊並直接進入另一個活動?

只有在安裝應用程序之後,這是一次性過程。之後,當他們打開應用程序時,我打算立即將它們帶到應用程序中(活動C)。

我該怎麼做?我是Android編程的新手。但我無法考慮這種情況。我不想使用數據庫。

+1

製作使用偏好。如果首選項已設置,則嘗試重定向到其他某個活動 – Shriram

+0

使用sharedpreference存儲用戶活動。 – Andolasoft

+1

[link]的可能重複(http://stackoverflow.com/questions/30664868/one-time-sign-in/ 30665342#30665342) –

回答

1

您需要持久存儲機制來保存用戶的狀態(已登錄或未登錄)。有多種方法可以做到這一點。最簡單的是SharedPreference這將在本地存儲用戶狀態。您也可以將此信息存儲在遠程服務器中,並在每次打開應用程序時驗證用戶身份,儘管在大多數情況下這可能會有點過分。

+0

假設我不想將它保存在遠程數據庫中,重新啓動或重新啓動android手機後共享首選項狀態是否會丟失? – user3705478

+0

因爲本地存儲包括'SharedPreference'屬於手機的擁有者,所以你不能真正依賴它。就像用戶可能選擇清除你的應用程序的「清除數據」一樣,你的所有'SharedPreference'都會丟失(用戶也會被註銷),你將不得不重新生成它。 – Shaishav

0

基本流程應該如下Splash Screen -> OnBoarding Screen(Signup) -> MainActivitySplash Screen你需要檢查一個prefs值讓我們調用它isSignedUp如果用戶沒有註冊,這是false。它從這裏相當簡單。每次啓動應用程序時,您都需要檢查首選項是否爲isSignedUp爲true或false,並根據該值顯示相應的屏幕。所以如果值是真的,那意味着用戶已經註冊並向他顯示主屏幕,否則向他顯示唱歌屏幕。

0

使用Android SharedPreferences,它可用於存儲可用於將答案保留在緩存中的數據。

1

嘗試使用SharedPreferences。在ActivityA中創建檢查SharedPreferences是否包含一個確定用戶是否註冊的特定值。如果沒有設置或者不具有所需要的價值,將用戶重定向到ActivityB否則ActivityC

代碼:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    SharedPreferences pref = this.getSharedPreferences("my_prefs", Context.MODE_PRIVATE); 
    if(pref.contains("MY_KEY") && pref.getBoolean("MY_KEY", false)){ //first stratup or user has not signed in yet 
     Intent intent = new Intent(this, ActivityC.class); 
     startActivity(intent); 
    } else { //already signed up 
     Intent intent = new Intent(this, ActivityB.class); 
     startActivity(intent); 
    } 

    setContentView(R.layout.activity_main); 
} 

不要忘記保存/插入值內SharedPreferences用戶註冊後。

代碼:您的活動

SharedPreferences pref = this.getSharedPreferences("my_prefs", Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor = pref.edit(); 

    if(sign_up_success){ 
     editor.putBoolean("MY_KEY", true); 
     editor.commit(); 
    } 
+0

「不要忘記在用戶註冊後在SharedPreferences中保存/插入值。「 您的意思是將它保存在數據庫中? – user3705478

+0

否共享偏好 – parohy

+0

有關您的問題的任何更新? – parohy