2017-03-26 5 views
0

私は3つのタブ(フラグメント)をメインアクティビティとするアクティビティを使用するアンドロイドアプリケーションを作成しています。アプリケーションは、Firebaseで使用するすべての情報を保存します。このため、ユーザーがサインインするたびにFirebaseからデータをダウンロードします。ここに私の問題が来る。私は現在のユーザーに関する情報を表示するフラグメントと、ユーザーがfirebaseに保存するメモを表示する別のフラグメントを持っています。情報はfirebaseに保存されているので、私がダウンロードしたものを保存し、その情報をバックグラウンドで保存したいと思います。私はすべてのメモとユーザーに関する情報を保持するクラスSessionを作成しようとしましたが、一部のアクティビティやフラグメントのリフレッシュ/フィニッシュ後に、セッションクラスに格納された情報が失われました。バックグラウンドでユーザーに関する情報を保持する方法は? [Android]

私の質問です:現在のセッションに関する情報をバックグラウンドで保持する方法はありますか(画面が表示されていないアクティビティのようなものですが、これらはサービスと呼ばれています)、もちろんベストプラクティスは何ですかそう?ここに私のSessionクラスは次のとおりです。

public class Session { 

    private static HashMap<String,Note> allNotes = new HashMap<String, Note>(); 
    private static User currUser; 


    public Session(User user){ 
     this.currUser = user; 
    } 


    public static HashMap<String, Note> getAllNotes() { 
     return allNotes; 
    } 

    public void setAllNotes(HashMap<String, Note> allNotes) { 
     this.allNotes = allNotes; 
    } 

    public static User getCurrUser() { 
     return currUser; 
    } 

    public void setCurrUser(User currUser) { 
     this.currUser = currUser; 
    } 
} 
+0

ここをクリックしてくださいhttp://www.androidhive.info/2012/08/android-session-management-using-shared-preferences/ – Naveedumar

答えて

0

はいユーザーがアプリケーションを閉じた場合でも存続します地図に似たキーと値のペアの形で、活動やアプリケーションが好みを維持することができますshared preferences共有環境設定を使用しています。 名前が示すように、主な目的は、ユーザー固有の設定(ユーザー固有の設定など)を保存して、ユーザーをアプリケーションにログインさせておくことです。 保存するキー値のコレクションが比較的少ない場合は、SharedPreferencesを使用する必要があります。ここで

started.

はまた、データを送信するためにparceble使用することを検討して得るための素晴らしいリンクです。 Androidの2つのコンポーネント間でオブジェクトを渡したい場合、これらのオブジェクトはAndroid Parcelableインターフェイスを実装する必要があります.Parcelable Androidは、Javaで使用されているシリアル化および逆シリアル化メカニズムです。

realmを使用すると、特に情報セットが大きい場合に、一時的にデータを格納できます.Realmは、携帯電話、タブレットまたはウェアラブル内で直接実行されるモバイルデータベースです。 Here.

関連する問題