gpt4 book ai didi

android - 在应用程序生命周期的早期调用 getPackageName()

转载 作者:行者123 更新时间:2023-11-30 01:53:13 25 4
gpt4 key购买 nike

我需要在应用程序生命周期的早期调用 getPackageName。我试图在 Application 构造函数中调用它,结果发现它抛出了 NullPointerException。我查看了 Android 源代码并找到了 that Android 调用内部attach 方法,该方法又调用受记录 保护的attachBaseContext 方法。一旦我将我的代码从构造函数移到 attachBaseContext 中,一切都按预期工作。

问题:假设attachBaseContext 方法是对Application 构造函数的一种扩展是个好主意吗?

最佳答案

如果您只需要pacakageName,我建议使用BuildConfig#APPLICATION_ID,因为它是静态变量,不需要等待应用程序初始化。您可以找到包名称和应用程序 ID 之间的区别 here .

如果您无论如何都需要应用程序的一些入口点,恕我直言,使用 attachBaseContext(Context c) 方法似乎是个好主意,因为:

  • 它可能只被调用一次(作为构造函数)。
  • 这是应用程序中第一个可以获取应用程序上下文的地方

关于android - 在应用程序生命周期的早期调用 getPackageName(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32692915/

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