gpt4 book ai didi

android - 如何从非前台 Activity 访问当前上下文?

转载 作者:搜寻专家 更新时间:2023-11-01 09:16:27 26 4
gpt4 key购买 nike

我正在进行 Activity A,听有人摇动设备。即使用户正在进行 Activity B,也会发生这种情况。当设备被摇动时,我需要显示一个进度对话框,因此我需要正确的上下文。就像 Activity A 中的 shake 函数一样,有时我用于上下文的 this 关键字似乎不正确(因为我猜它的 Activity B 是正确的上下文)并且我得到了一种窗口异常错误的 token ...

我继续... Activity B 是前台。用户摇动设备。 Activity A 正在对摇晃使用react并想要显示一些内容,但 Activity A 当前不在前台。使用 this 关键字作为当前上下文的 Activity A 有时会因窗口异常错误标记而崩溃。如何获得正确稳定的上下文?

最佳答案

您可以将 Activity A 的上下文保存在 Application 类中,该类充当全局单例。

public class ApplicationController extends Application {
private static ApplicationController _appCtrl;
private Context mActivityAContext;

public static ApplicationController getAppCtrl()
{
return _appCtrl;
}

public void setContextForActivityA(Context context)
{
mActivityAContext = context;
}

public Context getContextForActivityA()
{
return mActivityAContext;
}

public void onCreate()
{
// Initialize the AppController class
super.onCreate();
ApplicationController._appCtrl = this;
}

}

现在您可以在 setter 方法中设置 Activity A 的上下文,并通过以下方式从应用中的任何位置获取它:

ApplicationController.getContextForActivityA();

但是,当您将 Activity 上下文传递给其他 Activity 时,要非常小心内存泄漏。参见 link text

关于android - 如何从非前台 Activity 访问当前上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4397547/

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