2016-09-13 8 views
0

モバイルアプリの現在ログインしているユーザーを追跡するためのシングルトンを作成していますか?以下のクラスは私が以前使っていたもののラインに沿ったものですが、それはうまくいきますが、私はいつもそれが最良の方法ではないと感じています。モバイルアプリの現在ログインしているユーザーにシングルトンを使用

public class LoggedInUser { 

    private static LoggedInUser ourInstance = null; 
    User user; 

    public static LoggedInUser getInstance() { 
     return ourInstance != null ? ourInstance : new LoggedInUser(); 
    } 

    private LoggedInUser() { 
     user = new User(); 
    } 

    public void setUser(User user) { 
     this.user = user; 
    } 

    public User getUser() { 
     return this.user; 
    } 
} 

私はアプリ全体でかなり多くの場合、ユーザの情報を使用し、時にはユーザーオブジェクトは、そのいずれかの最良の選択肢のような音はありません各ビューの間でオブジェクトを渡し自明小さくありません。これのための通常の練習は何ですか? ユーザーはアプリを使用するたびにログインする必要があります。そのため、情報を必ずしも電話に書きたくない場合もあります。

答えて

1

シングルトンは正常です。 しかし、いつでもApplicationクラスとその変数(静的とオブジェクトの両方)を使用してデータを格納できます。

public class MyApp extends Application { 

public static LoggedInUser user; 

@Override 
    public void onCreate() { 
     super.onCreate(); 
     user = LoggedInUser.getInstance(); 

//... 
} 

//or even 
public LoggedInUser user_obj; 
    } 

AndroidManifest.xml:どこかのコード使用中

<application 
     android:allowBackup="true" 
     android:largeHeap="true" 
     android:name=".MyApp" 
     android:icon="@drawable/iconlite" 
     android:label="@string/app_alias" 
     android:theme="@style/AppTheme" > 

MyApp.userまたは((MyApp)getApplication()).user_obj

関連する問題