1

AdMob インタースティシャルのゲームで大きな問題が発生しました。タイマーが終了するか、プレーヤーがラウンドを終了すると、広告が表示されます。というわけで活動終了。繋がらなくてもOK。活動の変化は速いです。神と高速接続がある場合も同じです。問題は、価値のある接続があり、プレーヤーがラウンドを終了したときに、アクティビティが変化しない長い時間 (広告がまったく表示されないこともあります) があるため、プレーヤーは厳しい時間でもプレイし続けることができることです。以上。これは私のコードです:

public void onDismissScreen(Ad arg0) {
    // TODO Auto-generated method stub

}

public void onFailedToReceiveAd(Ad arg0, ErrorCode arg1) {

    Intent data = new Intent();
    data.putExtra("team", team);
    myDB.close();
    data.putExtra("A", A);
    data.putExtra("B", B);
    // data.putExtra("contaDb", this.contDb);
    setResult(1, data);
    finish();

}

public void onLeaveApplication1(Ad arg0) {
    // TODO Auto-generated method stub

}

public void onPresentScreen1(Ad arg0) {
    // TODO Auto-generated method stub

}

public void onReceiveAd(Ad ad) {
    Log.d("OK", "Received ad");
    if (ad == interstitial) {
        if(ad.isReady())
           interstitial.show();
    }

    Intent data = new Intent();
    data.putExtra("team", team);
    myDB.close();

    data.putExtra("A", A);
    data.putExtra("B", B);
    // data.putExtra("contaDb", this.contDb);
    setResult(1, data);
    finish();
}

public void onDismissScreen1(Ad arg0) {
    // TODO Auto-generated method stub

}

public void onLeaveApplication(Ad arg0) {
    // TODO Auto-generated method stub

}

public void onPresentScreen(Ad arg0) {
    // TODO Auto-generated method stub

}

と:

public boolean isOnline() {
    ConnectivityManager cm = (ConnectivityManager) this
            .getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo ni = cm.getActiveNetworkInfo();
    if (ni == null)
        return false;

    return ni.isConnected();
}

public void visualizzaRisultatoActivity() {
    if (isOnline()) {
        interstitial = new InterstitialAd(this, "0976ebb3525a494a");
        // Create ad request
        AdRequest adRequest = new AdRequest();
        // Begin loading your interstitial
        interstitial.loadAd(adRequest);
        // Set Ad Listener to use the callbacks below
        interstitial.setAdListener(this);
    } else {
        Intent data = new Intent();
        data.putExtra("team", team);
        myDB.close();
        data.putExtra("A", A);
        data.putExtra("B", B);
        // data.putExtra("contaDb", this.contDb);
        setResult(1, data);
        finish();
    }

}

VisualizzaRisultatoActivity は、時間が終了するか、プレーヤーがラウンドをキャンセルしたときに呼び出されます。前もって感謝します

4

1 に答える 1

1

ベスト プラクティスは、ゲーム中にインタースティシャルをプリロードし、ゲームの終了時に準備ができているかどうかをポーリングすることです。

if(interstitial.isReady()) {
  interstitial.show();
}

インターisReadyスティシャル コールが発生するとフラグが設定されますonReceiveAdが、ゲームが終了するまで表示を待つことができます。VisualizzaRisultatoActivity の代わりに、ゲーム アクティビティ内でインタースティシャルをリクエスト/表示する必要があることに注意してください。インタースティシャルは、コンストラクターに渡したのと同じアクティビティで表示されることが期待されます。

于 2013-04-27T02:05:21.007 に答える