gpt4 book ai didi

android - 如何在 Android 库中保存对上下文对象的引用

转载 作者:行者123 更新时间:2023-11-29 01:41:39 24 4
gpt4 key购买 nike

我正在尝试制作我的第一个 android 库作为练习。这是 Google Cloud Messaging

的包装器

假设这段代码在 Android 应用程序的任何地方被调用:

GCMLib.initialize(this);

此方法接受上下文作为参数。稍后,库在 BroadcastReceiver 中收到一个新的 Push(在 Manifest 中引入),我正在尝试在那里创建一个 Notification,并检索目标使用该 Context 的应用程序图标和 AppName 字符串。

到目前为止,我在静态帮助程序类中持有对 Context 对象的引用:

public final class HelperClass {
private static Context appContext;

public static Context getAppContext() {
return appContext;
}

public static void setAppContext(Context appContext) {
HelperClass.appContext = appContext;
}
}

Android 库项目的标准模式是什么?

最佳答案

如果Context不需要画UI之类的,也就是application context就够了,可以这样:

public class MyApplication extends Application
{

private MyApplication instance;

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

public MyApplication getApplication() {
return instance;
}

}

现在您可以为有效的上下文调用 MyApplication.getApplication()。这不会导致泄漏,因为 Application 是单例(只有一个 Application 实例存在)。

要使用自定义应用程序对象,您需要更新 list ,请参阅此链接的示例:http://www.devahead.com/blog/2011/06/extending-the-android-application-class-and-dealing-with-singleton/

关于android - 如何在 Android 库中保存对上下文对象的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24186597/

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