繁体   English   中英

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

[英]Android how to access the same object through different activities

使用Firebase数据库和用户对象,可以在用户浏览不同活动时从数据库加载所有信息,但为了节省一些时间,将数据加载到MainActivity并放入一个对象(如user.setProfile ) 并从每个Activity访问该对象。 这是可能的吗? (一个简单的例子将不胜感激)。

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

参考:单例模式

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

class FbprojectApplication extends Application{
   static UserObject user;

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

    public static UserObject getUserObject(){
       return user;
    }

}

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

现在从你的活动,

public class MainActivity extends Activity{

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

同样,该变量可从任何类中获得。

public class OtherActivity extends Activity{

//get userobject whenever you need to.
    FbprojectApplication.getUserObject();
}

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

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

如果你想偷懒,你可以在你的应用程序类中保留一个对象,然后任何活动都可以使用它。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM