Member 10850253 Ответов: 1

Как показывать объявление на метод onCreate из appodeal на метод onCreate андроид


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

Что я уже пробовал:

<pre>
@Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        setContentView(R.layout.activity_rewarded_interstitial);
        progress = findViewById(R.id.progress);
...
//on oncreate
//This is what I have to check if the ad has finished loading, but this code 
//doesn't work and ad is only shown after button click, with a button listener.
if(progress.getProgress()==100){
            try {
                ad.show();
                Thread.sleep(3000);
                finish();
            } catch (InterruptedException e) {
                e.printStackTrace();
                finish();
            }
        }
}

Arthur V. Ratz

Означает ли это на самом деле, что вы хотите визуализировать рекламу при запуске до того, как будет визуализирован макет активности основного приложения ?? Если да, то вот мое решение ниже.

Mike V Baker

Вы пробовали поместить его в OnResume вместо OnCreate? По двум причинам. OnCreate может быть слишком рано в жизненном цикле для того, что вы пытаетесь сделать, и OnResume также будет запускать его, когда они переключаются с одного приложения на другое и возвращаются. Если вы не хотите, чтобы он подтягивал новую надстройку OnResume, то, возможно, OnCreateView будет работать.

1 Ответов

Рейтинг:
0

Arthur V. Ratz

<-- Advertisement dialog layout -->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout

    xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:app="http://schemas.android.com/apk/res-auto"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical">

    <ImageView

        android:id="@+id/adImageView"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        app:srcCompat="@drawable/ad1" />
</LinearLayout>



Код, который вы должны реализовать в методе OnCreate действия вашего основного приложения до вызова метода setContentView:


package com.epsilon.adapp;

import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;

import java.util.Random;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        final AlertDialog.Builder m_myAdDlgBuilder =
                new AlertDialog.Builder(this);

        final View myAdView = this.getLayoutInflater().
                inflate(R.layout.dialog_ad, null);

        ImageView adImageView = myAdView.findViewById(R.id.adImageView);

        adImageView.setImageDrawable(getDrawable(this.getResources().getIdentifier("ad" +
                (new Random().nextInt(3) + 1), "drawable", getPackageName())));

        m_myAdDlgBuilder.setView(myAdView);

        m_myAdDlgBuilder.setPositiveButton("ok", null);

        AlertDialog myAdDialog = m_myAdDlgBuilder.create();

        myAdDialog.setCanceledOnTouchOutside(true);

        m_myAdDlgBuilder.show();

        setContentView(R.layout.activity_main);
    }
}


Вот ссылка на готовый к использованию Android-проект:
https://nofile.io/f/F0j207xZbn7/AdApp.zip