Открытие промежуточной рекламы с помощью AlarmManager и Broadcast Receiver - PullRequest
0 голосов
/ 20 февраля 2019

Я хочу открыть промежуточную рекламу, когда приложение не находится в рабочем режиме, и пытаюсь достичь его с помощью AlarmManager и Broadcast приемника, хотя широковещательный приемник и AlarmManager работают.Я проверяю его с помощью тост-сообщения, и тост появляется в идеальное время, но промежуточная реклама не появляется.

Это мой код:

MainActivity

public class MainActivity extends AppCompatActivity {

    AdView mAdView;
    static InterstitialAd interstitialAd;
    Handler handler;

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


        Calendar calendar = Calendar.getInstance();

        calendar.set(Calendar.HOUR_OF_DAY, 22);
        calendar.set(Calendar.MINUTE, 23);
        calendar.set(Calendar.SECOND, 30);
        if (calendar.getTime().compareTo(new Date()) < 0) calendar.add(Calendar.DAY_OF_MONTH, 1);
        Intent intent = new Intent(getApplicationContext(), BroadcasReceiver.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 100, intent, PendingIntent.FLAG_UPDATE_CURRENT);

        AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);

Приемник вещания

public class BroadcasReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(final Context context, Intent intent) {
        final InterstitialAd interstitialAd = new InterstitialAd(context);
        interstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
        interstitialAd.loadAd(new AdRequest.Builder().build());
        interstitialAd.setAdListener(new AdListener() {
            @Override
            public void onAdClosed() {
                // Load the next interstitial.
                interstitialAd.loadAd(new AdRequest.Builder().build());
            }

        });
        Handler handler = new Handler();
        Runnable r = new Runnable() {
            public void run() {
                interstitialAd.show();

            }
        };
        handler.postDelayed(r, 8000);
    }

}

Файл манифеста

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <receiver android:name=".BroadcasReceiver"/>
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-3940256099942544~3347511713"/>

    </application>
...