2013-10-11 4 views
0

Сегодня я переключился на AdMob. Моя проблема: время загрузки Interstitial Ad довольно высокое (до 10 шунтов).admob interstitial сразу же после нажатия кнопки?

My App: У меня есть результат Активность, где пользователи остаются в течение 10 секунд. На этой Activit есть кнопка Finish, с которой вы возвращаетесь к MainActivty (в моем случае «Home»), где находится еще одна кнопка завершения, чтобы закрыть приложение.

Мой вопрос: Возможно ли загрузить Interstitial, когда пользователь находится в Результирующей деятельности, и всплывает, если он нажал кнопку завершения?

Мои коды атм:

OnCreate

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_result); 


    this.interstitialAds = new InterstitialAd(this, "xxxMyCodeIDxxx"); 
    this.interstitialAds.setAdListener(this);} 

и OnClick:

@Override 
     public void onClick(View v) { 

      Result.this.finish(); 
      startActivity(new Intent(Result.this, Home.class)); 
      AdRequest adr = new AdRequest(); 
        adr.addTestDevice("xxxMyCodexxx"); 
        interstitialAds.loadAd(adr);} 

и (неважно) конец:

@Override 
public void onDismissScreen(Ad arg0) { 
} 

@Override 
public void onFailedToReceiveAd(Ad ad, ErrorCode error) { 
    Toast.makeText(Result.this, "No ad found!", Toast.LENGTH_LONG) 
    .show(); 
} 

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

@Override 
public void onPresentScreen(Ad arg0) { 
} 

@Override 
public void onReceiveAd(Ad arg0) { 
    if (interstitialAds.isReady()) { 
     interstitialAds.show(); 
    } else { 
     Toast.makeText(Result.this, "Interstitial ad was not ready to be shown.", Toast.LENGTH_LONG) 
     .show(); 
    } 
} 

Если я использую его например, межстраничная нагрузка s и появляется, если я нажимаю кнопку завершения, но это занимает до 10 секунд. В это время все нажали кнопку 2 выхода в MainActivity, чтобы покинуть приложение.

Спасибо!

ответ

1

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

Я предлагаю загрузке объявления во время дома # OnCreate так:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_result); 


    this.interstitialAds = new InterstitialAd(this, "xxxMyCodeIDxxx"); 
    this.interstitialAds.setAdListener(this); 

    final AdRequest adr = new AdRequest(); 
    adr.addTestDevice("xxxMyCodexxx"); 
    interstitialAds.loadAd(adr); 
} 

И когда нажата кнопка запуска ResultActivity таким образом, что вы будете уведомлены, когда она будет завершена, и по окончании показать объявление (если оно доступен).

private static final int MY_REQUEST_CODE = 1; 

@Override 
public void onClick(View v) { 
    // Result.this.finish(); // I don't know why you are calling this - it looks wrong. 
    startActivityForResult(new Intent(Result.this, Home.class), MY_REQUEST_CODE); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode = MY_REQUEST_CODE) { 
     if (interstitialAds.isReady()) { 
      interstitialAds.show(); 
     } else { 
      Toast.makeText(Result.this, "Interstitial ad was not ready to be shown.", Toast.LENGTH_LONG).show(); 
     } 
    } 
} 

В ResultActivity вам нужно будет вызвать #setResult (someValue) в какой-то момент. Я бы сделал это во время onCreate.

Единственная проблема, с которой вы можете столкнуться, заключается в том, что Home Activity является сборкой мусора, в то время как отображается ResultActivity, в этом случае InterstitialAd также будет потерян и должен быть перезагружен, но это маловероятно на большинстве устройств и с ограничениями на вас поместили на себя, я не вижу другого варианта.

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