在安卓工作室中,我想要一个静态(不变(变量,我可以从多个活动中获得。我的应用程序有几个活动:
- 登录活动
- 主页 活动
- 次级活动1
- 次级活动2
- 次级活动3
在这些活动中,我需要检查一个值以根据值执行不同的代码。就我而言,它是一个设备地址。我在两个地方使用此设备地址,因此,目前在两个单独的位置定义它。我知道这是一种不正确的做法。因此,我想定义一次并从两个活动(例如家庭活动和子活动 1(访问它。
我想知道我可以在哪里定义这个变量,然后如何包含它。 变量的一个例子是: 私有字符串 Device_Address = ">
XX:XX:XX:XX:XX:XX:XX";一个想法是我是否应该将其从主活动变成公共静态变量,然后将变量导入子活动?
谢谢
在应用程序类中声明可验证
public class App extends Application
{
private boolean isActive= false;
public boolean getisActive() {
return isActive;
}
public void setisActive(boolean _isActive) {
this.isActive= _isActive;
}
}
和用法是
App.getInstance().getisActive()
在清单中注册应用
<application
android:name=".App"
为此可以使用全局静态类。您将能够从任何地方访问该类,并且它不绑定到活动。
public class Constants {
public static final String DeviceAddress = "XX:XX:XX:XX:XX:XX";
}
第一个答案可能适合您,但在生产环境中(您将拥有许多持久数据对象,由多个上下文使用(,我建议使用 MVVM 模式和 Dagger。
您的活动将具有不同的视图模型,这些模型可以保存对某个单例存储库的引用(您将自己实现它并注入它以使用 Dagger 查看模型(。
存储库本身将被设计为提供或存储数据,这些数据可以从数据库、共享首选项等中检索。您的变量也可以存储在那里。