2016-08-02 4 views
0

シナリオは、ユーザーが初めてアプリケーションをダウンロードした場合、基本的な質問(アクティビティA)とサインアップ(アクティビティB)を依頼します。そのユーザーがサインアップして別のアクティビティに直接覚えていることをどのように覚えていますか?

これはアプリをインストールした後の1回限りの処理です。その後、彼らはアプリを開くたびに、私はすぐにアプリ(アクティビティC)にそれらを取る予定です。

どうすればよいですか?私はAndroidプログラミングの初心者です。しかし、私はこのシナリオについて考えることができません。私はデータベースを使いたくない。

+1

あなたの活動の好みをご利用ください。プリファレンスが設定されている場合、他のアクティビティにリダイレクトしようとします – Shriram

+0

sharedpreferenceを使用してユーザーアクティビティを保存します.. – Andolasoft

+1

[link](http://stackoverflow.com/questions/30664868/one-time-sign-in/)の重複している可能性があります30665342#30665342) –

答えて

1

ユーザの状態を保存するには、永続的なストレージメカニズムが必要です(ログインしているかどうか)。これを行うにはさまざまな方法があります。最も簡単なのはSharedPreferenceで、ユーザーの状態をローカルに格納します。また、この情報をリモートサーバーに保存して、アプリケーションを開くたびにユーザーを検証することもできますが、ほとんどの場合、これは外に出ている可能性があります。

+0

私はそれをリモートデータベースに保存したくないと仮定して、アンドロイド携帯電話を再起動または再起動した後、共有の設定状態が失われますか? – user3705478

+0

ローカルストレージには 'SharedPreference'が含まれていますので、電話の所有者に属しています。あなたのアプリの 'Clear Data'を選択すると、あなたの' SharedPreference'はすべて失われてしまいます(ユーザーもログオフされるでしょう)ので、あなたはそれを再生成しなければなりません。 – Shaishav

0

基本的なフローは次のようにする必要がありますSplash Screenの場合、prefsの値を確認する必要があります。isSignedUpと呼びましょう。ユーザーがサインアップしていない場合はfalseです。それはここからかなり簡単です。アプリを起動するたびに、isSignedUpがtrueまたはfalseであるかどうかを確認し、それに応じて値を表示する必要があります。したがって、値がtrueの場合は、ユーザーがサインアップしてメイン画面を表示していることを示し、それ以外の場合は、画面を表示します。

0

Android SharedPreferencesを使用すると、回答をキャッシュに保持するために使用できるデータを保存することができます。

1

SharedPreferencesをお試しください。 ActivityAのon createでは、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

関連する問題