2

Android アプリを開発していますが、ユーザーが戻るボタンを押してアプリを終了したときに mopub インタースティシャル フルスクリーン広告を表示したいと考えています。

インタースティシャル広告を作成して onDestroy メソッドで表示してみました。そんな感じ:

@Override
public void onDestroy(){
    this.interstitial = new MoPubInterstitial(this, MY_INTERSTITIAL_AD_UNIT_ID_HERE);
    this.interstitial.setInterstitialAdListener(this);
    this.interstitial.load();

    super.onDestroy();
}

// InterstitialAdListener method
@Override
public void onInterstitialLoaded(MoPubInterstitial interstitial) {
    if (interstitial.isReady()) {
        mInterstitial.show();
    } else {
        // Other code
    }
}

ただし、どこでもインタースティシャルを破棄していません (mInterstitial.destroy();)。どこで実行できるかわからないため、次のエラーが発生します。

Activity com.myActivity has leaked IntentReceiver com.mopub.mobileads.MoPubView$1@41baffc0 that was originally registered here. Are you missing a call to unregisterReceiver()?
android.app.IntentReceiverLeaked: Activity com.myActivity has leaked IntentReceiver com.mopub.mobileads.MoPubView$1@41baffc0 that was originally registered here. Are you missing a call to unregisterReceiver()?

このエラーが発生していますが、追加が表示され (多くのデバイスでテストしました)、sony を除くすべてのデバイスでうまく機能しているようです。

このコードを改善して、終了時にインタースティシャルを表示するにはどうすればよいですか??

ありがとう!!

4

6 に答える 6

2

ondestroy 中にインタースティシャルを読み込みます。リークしているインタースティシャルロードの後に​​アクティビティが破棄されたとき。ondestroy では、interstitial.destroy() を呼び出します。

おそらくやりたいことは、onbackpressed の処理です。インタースティシャルを oncreate で読み込み、onbackpressed で表示し、ondestroy で破棄します。

于 2013-09-10T17:57:52.247 に答える
1

古い投稿ですが、この問題を探していて、この投稿を見つけました。

「アクティビティがウィンドウにリークしました」というエラーが表示された場合は、finish() を onAdClosed に配置することを忘れないでください。

mInterstitialAd.setAdListener(new AdListener() {
            @Override
            public void onAdClosed() {
                finish();
                requestNewInterstitial();

            }
        });

これは、アクティビティを閉じてインタースティシャルを表示する場合に使用します。

于 2016-10-24T13:08:02.800 に答える