gpt4 book ai didi

android - 是否可以在 Android 库项目中获取应用程序的上下文?

转载 作者:IT老高 更新时间:2023-10-28 13:23:32 25 4
gpt4 key购买 nike

我想在我的库项目的一个类中获取在运行时引用/托管我的库的应用程序的上下文。可能吗?如果是,怎么做?

谢谢

更新我不希望我的用户将参数中的上下文传递给我的库项目,因为我的库项目可能会通过 JNI 调用,而我不知道如何在 JNI 中获取上下文并将其传递给 Java 层。

最佳答案

还有一种方法,在你的库项目中添加应用类:

/**
* Base class for those who need to maintain global application state.
*/
public class LibApp extends Application {

/** Instance of the current application. */
private static LibApp instance;

/**
* Constructor.
*/
public LibApp() {
instance = this;
}

/**
* Gets the application context.
*
* @return the application context
*/
public static Context getContext() {
return instance;
}

}

然后在你的常规项目中让真正的应用程序类扩展 LibApp:

/**
* Base class for those who need to maintain global application state.
*/
public class App extends LibApp {

@Override
public void onCreate() {
super.onCreate();
}

}

确保您在 AndroidManifest 中定义了“名称”:

<application android:name="App" ...>

并且您的 App 类在基础包中。

然后您可以使用 LibApp.getContext() 您的库项目来获取正在使用该库的应用程序的应用程序上下文。

这可能不是一个好的解决方案,但它对我有用。我分享它是因为它可能对其他人有用。

关于android - 是否可以在 Android 库项目中获取应用程序的上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7157501/

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