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

时间:2014-09-14 08:59:48

标签: java android android-activity

当有人离开应用程序时,我只是在显示商品墙,所以我放置了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()

我知道我不能以这种方式访问​​活动,但此刻我非常困惑。我知道我在这里错过了一小部分。你能帮我推吗?

3 个答案:

答案 0 :(得分:1)

Activity class extends Context所以实际上ActivityContext的实例,在onFinish系统正试图销毁Activity所以必须没有工作仍在工作与此Activity相关,如果您仍然需要Context,则可以使用this.getApplicationContext

答案 1 :(得分:1)

要在嵌套类中调用外部类(在您的情况下是匿名类),请使用外部类的类名:

YourOuterClass.this

答案 2 :(得分:1)

在您致电super.finish()之前,您的活动的上下文仍然有效。所以在你完成之前不要打电话。

如果您不能这样做,请使用应用程序上下文。