gpt4 book ai didi

android - 在 onCreate 方法之前从 Activity 获取 Intent Extras

转载 作者:行者123 更新时间:2023-11-29 01:09:55 31 4
gpt4 key购买 nike

有什么方法可以在 attachBaseContext() 方法中获取额外的 Intent 吗?

我正在使用的 Activity 在框架项目中。我需要使用 attachBaseContext() 方法设置 Activity 的语言,例如:

@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(LanguageContextWrapper.wrap(newBase, "en"));
}

我正在使用 intent.putExtra() 将语言代码字符串发送到 Activity。当我尝试在 attachBaseContext() 中获取额外内容时,它会抛出 NullPointerException 错误。如何做呢?谢谢。

最佳答案

TL;DR - 据我所知,这是不可能的。

这是因为 Android 会在附加 Activity 后立即调用 attachBaseContext,如 here 所示.稍后, Intent 在 Activity 类中设置。

另一种解决方案是将变量存储在您的 Application 子类或某种应用程序范围的存储库中。

例如,


@覆盖
protected void attachBaseContext(Context newBase) {
String someLanguage = ((MyApplication)newBase.getApplicationContext()).getAppLanguage();
super.attachBaseContext(LanguageContextWrapper.wrap(newBase, someLanguage));
}

您可以轻松地调整它以使用带有 Dagger 甚至 SharedPreferences 的存储库模式。

关于android - 在 onCreate 方法之前从 Activity 获取 Intent Extras,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43918469/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com