2015-08-02 3 views
0

Я использую навигационный ящик с фрагментами и внутри одного из фрагментов. У меня есть многоуровневый список. В моей ActionBarActivity.java у меня есть:Android Fragment InterstitialAd onBackPressed

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     ... 
     // returning to previous 
     if (item != null && item.getItemId() == android.R.id.home) { 
      onBackPressed(); 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 

и onBackPressed();:

public void onBackPressed() { 
     // return to the previous fragment stack 
     FragmentManager fragmentManager = getFragmentManager(); 
     if (fragmentManager.getBackStackEntryCount() > 0) { 
      fragmentManager.popBackStack(); 
      // show the ad 
      if (mInterstitialAd.isLoaded()) { 
       mInterstitialAd.show(); 
      } 
     } else { 
      super.onBackPressed(); 
     } 
    } 

Я хочу, чтобы отобразить InterstitialAd, когда пользователь нажимает кнопку назад в фрагменте мультиселекторе списка уровня. Вышеупомянутое решение работает, но оно отображает только одно объявление на одном элементе.

Так вот пример работы:

- user opens the app and first fragments lists a list of items 
- user clicks on Item #1 and enters that item details 
- user clicks back (Ad is shown) and goes back to all items 
- user clicks on Item #2 and enters that item details 
- user clicks back (but Ad is not shown) and goes back to all items 

не знаю, почему, когда пользователь нажимает на спину во второй раз и так далее, объявление не показывается. Может ли кто-нибудь предложить возможное решение?

обновление # 1: вот как я создаю интерстициальные объявления на onCreate:

// interstitial ads 
    mInterstitialAd = new InterstitialAd(this); 
    mInterstitialAd.setAdUnitId(AD_ID); 

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

и:

private void requestNewInterstitial() { 
     AdRequest adRequest = new AdRequest.Builder() 
       .addTestDevice("SEE_YOUR_LOGCAT_TO_GET_YOUR_DEVICE_ID") 
       .build(); 
     mInterstitialAd.loadAd(adRequest); 
    } 

ответ

0

После показа межстраничное вам нужно вызвать interstital.loadAd() снова.

Так называйте это от onAdClosed() (а также в onCreate()).

+0

Я обновил вопрос, не могли бы вы снова взглянуть? –

Смежные вопросы