kotlin Android应用程序的全局变量或静态类

0wi1tuuw  于 2022-11-30  发布在  Kotlin
关注(0)|答案(2)|浏览(221)

我正在和Kotlin一起开发一个安卓应用程序。
例如,我在LoginActivity上获得了一个访问令牌,我在每个Activity上都需要这个访问令牌来调用API。我知道我可以使用putExtra()和getExtra(),但为每个新Activity编写这段代码是没有意义的。
有没有办法创建一个全局变量或类似静态类的东西,这将是访问的所有活动在应用程序?
什么是正确的Android方法呢?

mwkjh3gx

mwkjh3gx1#

我认为objectcompanion objectwhat you are looking for.
请注意,object的示例可能在没有您控制的情况下被垃圾收集。我建议创建一个BaseActivity类,您的所有Activity都从该类继承,并覆盖以下方法。

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    savedInstanceState?.let {
        MyObject.refreshFromBundle(it)
    }
}

override fun onSaveInstanceState(outState: Bundle) {
    MyObject.populateBundle(outState)
    super.onSaveInstanceState(outState)
}

那么在你的object中有以下函数

fun refreshFromBundle(bundle: Bundle) {
    // Get info from bundle and populate your variables
}

fun populateBundle(bundle: Bundle) {
    // Put info from variables into the bundle
}

有关为何需要here的更多信息

owfi6suc

owfi6suc2#

您可以使用简单的类别。

public class Important{
   private static String key = "";
   public static void setKey(String key){
       this.key = key;
   }
   public static String getKey(){
       return key;
   }
}

在你的包中的下创建这个类。当你得到你的密钥时,只需要调用Important.setKey("key")。然后你可以随时随地通过调用Important.getKey()来得到你的密钥

相关问题