Java 如何在finish()方法中获取上下文?

Java 如何在finish()方法中获取上下文?,java,android,android-activity,Java,Android,Android Activity,我只是想在有人离开应用程序时显示一个offerwall,因此我放置了finish()方法: @Override public void finish() { super.finish(); MobileCore.init(this.getContext(), "xxx", MobileCore.LOG_TYPE.DEBUG, MobileCore.AD_UNITS.OFFERWALL); MobileCore.setStickeezReadyListener(new O

我只是想在有人离开应用程序时显示一个offerwall,因此我放置了
finish()
方法:

@Override
public void finish() {
    super.finish();
    MobileCore.init(this.getContext(), "xxx", MobileCore.LOG_TYPE.DEBUG, MobileCore.AD_UNITS.OFFERWALL);

    MobileCore.setStickeezReadyListener(new OnReadyListener() {
        @Override
        public void onReady(MobileCore.AD_UNITS adUnit) {
            if (adUnit == MobileCore.AD_UNITS.OFERWALL) {
                MobileCore.showOferWall(getActivity());
            }
        }
    });
}
但我有问题。首先,使用此代码
this.getContext()
以及此
getActivity()


我知道我不能以这种方式进入活动,但我现在非常困惑。我知道我在这里遗漏了一小部分。你能帮我推一下吗?

活动类扩展了上下文
,所以实际上
活动
上下文
的实例,在
完成
中,系统试图破坏
活动
,所以肯定没有与此
活动
相关的作业在工作,如果您仍然需要
上下文
,则可以使用
this.getApplicationContext
调用嵌套类中的外部类(在您的示例中是匿名类),使用外部类的类名:

YourOuterClass.this

在调用
super.finish()
之前,活动的上下文将保持有效。所以在你完成之前不要打电话


如果不能做到这一点,请使用应用程序上下文。

对于Android应用程序来说,这是一种非常糟糕的设计方法。如果我安装了一个应用程序,每次按下“后退”按钮时都会强制显示广告,我会立即安装。@squ退出应用程序时,广告只显示一次(MainActivity)。