2016-08-02 86 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