gpt4 book ai didi

android - 如何静态获取非 Activity 类的当前 Activity 上下文

转载 作者:太空宇宙 更新时间:2023-11-03 13:27:15 24 4
gpt4 key购买 nike

我有一个非 Activity 类需要启动一个新 Activity 。现在我只是将当前上下文作为参数传递,但如果可能的话我想静态访问上下文。我已经尝试创建一个新应用程序(MyApplication extends Application),既作为新应用程序又作为主应用程序,但都没有成功。有什么建议吗?

当前代码:

public class SharedFunctions {
public static void doSomething(Context context){
Intent i = new Intent(context, NextActivity.class);
context.startActivity(i);
}
}

最佳答案

更简洁的方法是将上下文传递给每个方法。这需要更多的输入,但有助于确保您不会泄露引用。

当然,如果你真的需要静态引用它,你可以只在你的 SharedFunctions 类中保留一个静态成员并为每个 Activity 设置它。

onResume()onPause() 可能是设置/清除它的好地方,但根据您的需要,您可能想要更改它。尽量不要保留对旧 Activity 的引用。

public class SharedFunctions{
private static Context context;

public static void setContext(Context ctx){
context = ctx;
}

public static void doSomething(){
context.someContextFunction();
}

}

在每个 Activity 中:

protected void onResume(){
SharedFunctions.setContext(this);
}

protected void onPause(){
SharedFunctions.setContext(null);
}

关于android - 如何静态获取非 Activity 类的当前 Activity 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17747512/

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