2017-07-01 13 views
2

私はオプションメニューボタンを使用して2番目のアクティビティに進みます。ユーザが第2のアクティビティを起動した後、そのメニューボタンinterstitial Ad showをクリックすると。 2番目のアクティビティを開始する前にインタースティシャル広告を表示し、ユーザーがインタースティシャル広告の閉じるボタンをクリックすると、2番目のアクティビティが開始されます。ボタンをクリックした後に新しいアクティビティを開始する前にインタースティシャル広告を表示するにはどうすればよいですか?

私はインタースティシャル広告を表示するために以下のコードを使用しています。

case R.id.button_id: 
    startActivity(new Intent(this, secondactivity.class));    

        interstitial = new InterstitialAd(getApplicationContext()); 
        interstitial.setAdUnitId(getString(R.string.admob_interstetial_ad)); 
        AdRequest adRequest9 = new AdRequest.Builder() 
          .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) 


          .build(); 
        interstitial.loadAd(adRequest9); 
        interstitial.setAdListener(new AdListener() { 
         public void onAdLoaded() { 
          if (interstitial.isLoaded()) { 
           interstitial.show(); 
          } 
         } 
        }); 


        return true; 

答えて

1
+1

これは機能しています。ありがとう、私はあなたにとても感謝しています。この 'startActivity(新しい意図(MainActivity.this、secondactivity.class));;' – user3137451

+0

を編集した後に動作しましたが、問題があります。広告が表示されない場合、またはユーザーにインターネット接続がない場合、何も起こりません。広告が表示されない場合、またはユーザーがインターネットに接続していない場合は、2番目のアクティビティが開始されます。 – user3137451

+0

多分、インターネット接続をチェックします。もし接続がない場合は、アクティビティを起動しますか? https://developer.android.com/training/monitoring-device-state/connectivity-monitoring.html#DetermineType –

3

を@にuser8240773によって提案された答えが正しいですが、あなたの問題を扱う、より効率的な方法があります:ここでこれについての詳細を読む

interstitial.setAdListener(new AdListener() { 
public void onAdLoaded() { 
    if (interstitial.isLoaded()) { 
     interstitial.show(); 
    } 
} 
    @Override 
     public void onAdClosed() { 
      startActivity(new Intent(this, secondactivity.class));  
      // Code to be executed when when the interstitial ad is closed. 
      Log.i("Ads", "onAdClosed"); 
     } 
}); 

活動を開始するonAdClosed機能を使用してください。あなたも広告がありませんインターネット接続または何か他のもののためにロードしていない心配する必要はありませんでしょう

// Has the interstitial loaded successfully? 
// If it has loaded, perform these actions 
if(mInterstitialAd.isLoaded()) { 
    // Step 1: Display the interstitial 
    mInterstitialAd.show(); 
    // Step 2: Attach an AdListener 
    mInterstitialAd.setAdListener(new AdListener() { 
     @Override 
     public void onAdClosed() { 
      // Step 2.1: Load another ad 
      AdRequest adRequest = new AdRequest.Builder() 
            .addTestDevice(AdRequest.DEVICE_EMULATOR_ID) 
            .build(); 
      mInterstitialAd.loadAd(adRequest); 

      // Step 2.2: Start the new activity 
      startActivity(new Intent(Activity1.this, Activity2.class)); 
     } 
    }); 
} 
// If it has not loaded due to any reason simply load the next activity 
else { 
    startActivity(new Intent(Activity1.this, Activity2.class)); 
} 

その方法:ここに私のコードです。問題を記述した方法ですべてがこのコードによって処理されます。

関連する問題