Android如何通过不同的活动访问同一个对象

时间:2016-10-08 09:15:16

标签: java android android-activity

我正在使用像Facebook这样的应用程序项目,我正在使用Firebase数据库,并且有一个用户对象(登录的用户),并且该对象具有名称电子邮件个人资料图片等属性。

我的问题是,我知道每当用户浏览不同的活动(如个人资料信息时间轴)时,我都可以从数据库加载每个信息,但为了节省一些时间,我希望将数据加载到MainActivity并将数据放入一个对象(如user.setProfile),我希望从每个Activity访问该对象???这可能吗?(简单的例子将非常感激)

4 个答案:

答案 0 :(得分:1)

您应该尝试使用Singleton设计模式,并且不要忘记线程安全问题。

参考:Singleton pattern

答案 1 :(得分:1)

一种可能的解决方案是使用您的应用程序类。

@Configurable

在android中,Application类具有整个应用程序的生命周期,因此可以在需要时使用活动进行调用。

现在从你的活动开始,

class FbprojectApplication extends Application{
   static UserObject user;

    public static void setUserObject(UserObject user){
      this.user=user;
    }

    public static UserObject getUserObject(){
       return user;
    }

}

同样,这个变量可以从任何类中获得。

public class MainActivity extends Activity{

//initialize userobject whenever you need to.
  void initializeUser(UserObject user){
    FbprojectApplication.setUserObject(user);
 }
}

由于userobject在应用程序类中是静态的,因此您可以重新初始化它,而不必担心不同活动之间的不一致。

答案 2 :(得分:0)

通过您的应用程序处理此类依赖关系的一种好方法是使用依赖注入框架,例如dagger http://square.github.io/dagger/

如果你想要懒惰,你可以在你的应用程序类中保留一个对象,然后这个对象可用于任何活动。

答案 3 :(得分:0)

我想建议在启动static中声明一个Activity对象。然后,一旦填充了从Firebase获取的值,您就可以从所有其他Activity获取值。