Я сделал некоторый код, но он не работает должным образом.После полной загрузки индикатора прогресса моего экрана приветствия будет показано промежуточное объявление с помощью setAdListner.Чтобы я мог достичь своей цели (после закрытия объявления или не смог загрузить объявление), я хочу перейти к FirstActivity.Но я не знаю, где проблема?
package com.abdullah.md.allsimoffers;
import android.content.Intent;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ProgressBar;
import android.widget.Toast;
import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.InterstitialAd;
import com.google.android.gms.ads.MobileAds;
public class MainActivity extends AppCompatActivity {
ProgressBar progressBar;
int setValue;
private InterstitialAd interstitialAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
getSupportActionBar().hide();
MobileAds.initialize(this,"ca-app-pub-3940256099942544~3347511713");
progressBar = findViewById(R.id.progressBar);
interstitialAd = new InterstitialAd(MainActivity.this);
interstitialAd.setAdUnitId(getString(R.string.interstitial_ad_unit_id));
interstitialAd.loadAd(new AdRequest.Builder().build());
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
interstitialAd.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "Ads", Toast.LENGTH_SHORT).show();
interstitialAd.show();
}
});
super.onAdLoaded();
}
@Override
public void onAdClosed() {
goToFirstActivity();
super.onAdClosed();
}
@Override
public void onAdFailedToLoad(int i) {
goToFirstActivity();
super.onAdFailedToLoad(i);
}
});
}
}, 5500);
final Thread thread = new Thread(new Runnable() {
@Override
public void run() {
startProgressing();
}
});
thread.start();
}
private void goToFirstActivity() {
Intent intent = new Intent(MainActivity.this, FirstActivity.class);
startActivity(intent);
}
private void startProgressing() {
for (setValue = 10; setValue <= 100; setValue += 20) {
progressBar.setProgress(setValue);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
Иногда он показывает рекламу, но это очень мало раз.Это означает, что если я запускаю приложение 20 раз, объявление показывается 1 раз, а может быть через 2, 3 или несколько минут спустя.Если я удаляю adListner и устанавливаю interstitialAd.show (), тогда он работает.Но таким образом я не могу установить намерение пойти FirstActivity.