2016-05-05 6 views
0

Ich bin seit Stunden festgefahren. Ich habe Admob-Anzeigen in meine Anwendung integriert und füge sie hinzu, wenn der Nutzer etwas in den Bearbeitungstext schreibt, aber es braucht Zeit, um die Anzeigen mehrmals zu laden, während der Benutzer den Text eingibt und zur nächsten Aktivität und meinen Anzeigen geht Zeit laden. Können Sie mir eine Lösung geben, wie Sie dieses Problem lösen können?AdMob Ads braucht Zeit zum Laden in Android-Anwendung

Dank im Voraus

PassValues.java

package com.logixcess.wordguessing; 

import android.content.Context; 
import android.media.MediaPlayer; 
import android.net.ConnectivityManager; 
import android.net.NetworkInfo; 
import android.widget.Button; 

import com.google.android.gms.ads.AdRequest; 
import com.google.android.gms.ads.InterstitialAd; 

import java.security.PrivateKey; 
import java.util.ArrayList; 
import java.util.LinkedList; 
import java.util.List; 

/** 
* Created by ert on 17/04/2016. 
*/ 
public class Passvalues { 
    public static String[] words , toCompare; 
    public static int score = 0,staticScore = 0,prevScore = 0,correctCount = 0; 
    public static String selectedWord; 
    public static List<String> repeated = null; 
    public static List<Button> buttonList = new ArrayList<Button>(); 
    public static int[] hiscore = new int[5]; 
    public static String[] hiscorename = new String[5]; 
    public static MediaPlayer mediaPlayer;//sounds 
    public static MediaPlayer tones;//music 
    static float volLeft = 70,volRight = 70; 
    public static boolean sound = true,music=true; 
    public static boolean adCheck = false; 
    public static InterstitialAd interstitial; 
    public Passvalues() 
    { 

     words=null ; toCompare=null; 
     score = 0;prevScore = 0;correctCount = 0; 
     selectedWord=""; 
     repeated = null; 
     buttonList = new ArrayList<Button>(); 
     hiscore = new int[5]; 
     hiscorename = new String[5]; 
     adCheck = false; 

    } 

    public static void playMusic(Context context,int id) 
    { 
     if(Passvalues.music) 
     { 
      if(tones != null) 
      { 
       if (!tones.isPlaying()) { 
        tones = MediaPlayer.create(context, id); 
        tones.setLooping(true); 
        tones.start(); 
       } 
      } 
      else { 

       tones = MediaPlayer.create(context, id); 
       tones.setLooping(true); 
       tones.start(); 
      } 

     } 
    } 
    public static void stopMusic(){ 
     /* if(!Passvalues.sound) { 
      if(tones != null) 
      { 
       if(tones.isPlaying()) { 
        stopPlaying(tones); 
       } 
      } 
      else 
      { 
       tones = null; 
       stopPlaying(tones); 
      } 
     }*/ 

     if((!Passvalues.music)&&(!Passvalues.sound)) 
     { 
      if(tones!=null) 
      { 
       stopPlaying(tones); 
       tones=null; 
      } 
      else 
      { 
       //pehlay se hi band hai music 
      } 
      if(mediaPlayer!=null) 
      { 

       stopPlaying(mediaPlayer); 
       mediaPlayer=null; 
      } 
      else 
      { 

       //peh;ay se hi sound band hai 
      } 

     } 
    } 
    public static void playSound(Context context,int id){ 
     if(Passvalues.sound) 
     { 
      mediaPlayer = MediaPlayer.create(context, id); 
      mediaPlayer.start(); 
     } 
     else if(mediaPlayer != null) 
     { 
      if(mediaPlayer.isPlaying()) { 
       stopPlaying(mediaPlayer); 

      } 
      if(mediaPlayer != null) 
       stopPlaying(mediaPlayer); 
     } 

    } 

    public static void stopPlaying(MediaPlayer mp) 
    { 

     if(mp!=null) 
     { 
      mp.stop(); 
      mp.release(); 
      mp=null; 

     } 

    } 

    public static boolean showad(Context context) 
    { 
     if(isNetworkAvailable(context)) 
     { 
      if(interstitial == null) 
       interstitial = new InterstitialAd(context); 
      interstitial.setAdUnitId("ca-app-pub-7328520387956873/2174089947"); 
      AdRequest adRequest = new AdRequest.Builder() 
        .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) 
        .build(); 
      interstitial.loadAd(adRequest); 
      return true; 

     } 
     return false; 
    } 


    private static boolean isNetworkAvailable(Context context) { 
     ConnectivityManager connectivityManager 
       = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); 


     return activeNetworkInfo != null && activeNetworkInfo.isConnected(); 
    } 

} 

EnterHighScore.java dies ist die Aktivität für Anzeigen

package com.logixcess.wordguessing; 

import com.google.android.gms.ads.AdListener; 
import com.google.android.gms.ads.AdRequest; 
import com.google.android.gms.ads.InterstitialAd; 
import com.logixcess.wordguessing.R; 

import android.app.Activity; 
import android.app.DialogFragment; 
import android.content.Context; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.content.pm.ActivityInfo; 
import android.graphics.drawable.Drawable; 
import android.net.ConnectivityManager; 
import android.net.NetworkInfo; 
import android.os.Bundle; 
import android.os.Handler; 
import android.os.PowerManager.WakeLock; 
import android.preference.PreferenceManager; 
import android.text.Editable; 
import android.text.TextWatcher; 
import android.util.Log; 
import android.view.KeyEvent; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.view.Window; 
import android.view.WindowManager; 
import android.view.View.OnClickListener; 
import android.widget.AbsListView; 
import android.widget.Button; 
import android.widget.EditText; 
import com.google.android.gms.ads.AdListener; 

public class EnterHiscore extends Activity { 

    int score; 
    EditText namebox; 

    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) 
    { 

     onBackPressed(); 
     super.onKeyDown(keyCode, event); 
     return true; 
    } 


    @Override 
    public void onBackPressed() { 
     Intent setIntent = new Intent(EnterHiscore.this,MainScreen.class); 
     //setIntent.addCategory(Intent.CATEGORY_HOME); 
     //setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     startActivity(setIntent); 
    } 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     //set screen full screen and no title 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     //this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
     setContentView(R.layout.enterhiscore); 
     Passvalues.showad(EnterHiscore.this); 
     View backgroundImage = findViewById(R.id.bak); 
     Drawable background = backgroundImage.getBackground(); 
     background.setAlpha(90); 
     //get score 

     score = Passvalues.staticScore; //getIntent().getIntExtra("score", 0); 

     //declare views 
     namebox = (EditText) findViewById(R.id.namebox); 
     Button save = (Button) findViewById(R.id.save); 



    namebox.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

     } 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      if (!Passvalues.adCheck) { 
       Passvalues.interstitial.setAdListener(new AdListener() { 
        @Override 
        public void onAdLoaded() { 
         super.onAdLoaded(); 
         if (Passvalues.interstitial.isLoaded()) { 
          Passvalues.interstitial.show(); 
         } 
        } 

        @Override 
        public void onAdClosed() { 
         //finish(); 
         Passvalues.interstitial = null; 
        } 
       }); 
       Passvalues.adCheck = true; 
      } 
     } 

     @Override 
     public void afterTextChanged(Editable s) { 

     } 
    }); 
     save.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 
       process_highscore(score, namebox.getText().toString()); 

      } 
     }); 

    } 






    public void loadscore() { 
     // load preferences 
     SharedPreferences hiscores = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
     for (int i = 0; i < 5; i++) { 
      Passvalues.hiscore[i] = hiscores.getInt("score" + i, 0); 
      Passvalues.hiscorename[i] = hiscores.getString("name" + i, "---"); 
     } 

    } 

    public void savescore() { 
     //load preferences 
     SharedPreferences hiscores = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
     SharedPreferences.Editor hiscores_editor = hiscores.edit(); 
     for (int i = 0; i < 5; i++) { 
      hiscores_editor.putInt("score" + i, Passvalues.hiscore[i]); 
      hiscores_editor.putString("name" + i, Passvalues.hiscorename[i]); 
     } 
     hiscores_editor.commit(); 
     loadscore(); 
    } 

    public void process_highscore(int score, String name){ 
     System.out.println("ll"+score + name); 
     loadscore(); 
     boolean ready = false; 
     if (score > Passvalues.hiscore[0]) { 

      Passvalues.hiscore[4] = Passvalues.hiscore[3]; 
      Passvalues.hiscorename[4] = Passvalues.hiscorename[3]; 
      Passvalues.hiscore[3] = Passvalues.hiscore[2]; 
      Passvalues.hiscorename[3] = Passvalues.hiscorename[2]; 
      Passvalues.hiscore[2] = Passvalues.hiscore[1]; 
      Passvalues.hiscorename[2] = Passvalues.hiscorename[1]; 
      Passvalues.hiscore[1] = Passvalues.hiscore[0]; 
      Passvalues.hiscorename[1] = Passvalues.hiscorename[0]; 


      Passvalues.hiscore[0] = score; 
      Passvalues.hiscorename[0] = name; 
      ready = true; 
     } 

     if (score > Passvalues.hiscore[1] && score <= Passvalues.hiscore[0] && !ready) { 

      Passvalues.hiscore[4] = Passvalues.hiscore[3]; 
      Passvalues.hiscorename[4] = Passvalues.hiscorename[3]; 
      Passvalues.hiscore[3] = Passvalues.hiscore[2]; 
      Passvalues.hiscorename[3] = Passvalues.hiscorename[2]; 
      Passvalues.hiscore[2] = Passvalues.hiscore[1]; 
      Passvalues.hiscorename[2] = Passvalues.hiscorename[1]; 

      Passvalues.hiscore[1] = score; 
      Passvalues.hiscorename[1] = name; 
      ready = true; 
     } 
     if (score > Passvalues.hiscore[2] && score <= Passvalues.hiscore[1] && !ready) { 

      Passvalues.hiscore[4] = Passvalues.hiscore[3]; 
      Passvalues.hiscorename[4] = Passvalues.hiscorename[3]; 
      Passvalues.hiscore[3] = Passvalues.hiscore[2]; 
      Passvalues.hiscorename[3] = Passvalues.hiscorename[2]; 

      Passvalues.hiscore[2] = score; 
      Passvalues.hiscorename[2] = name; 
      ready = true; 
     } 

     if (score > Passvalues.hiscore[4] && score <= Passvalues.hiscore[3] && !ready) { 

      Passvalues.hiscore[4] = score; 
      Passvalues.hiscorename[4] = name; 
     } 

     savescore(); 
     Intent i=new Intent(EnterHiscore.this,Highscore.class); 
     startActivity(i); 
     //go back to hiscores 
     finish(); 
    } 






} 

Antwort

0

Statt in den #onAdLoaded() die Anzeige der Anzeige Rückruf, zeigen Sie es in der Natur ral Bruchpunkt in #onTextChanged():

@Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      if (!Passvalues.adCheck) { 
       if (Passvalues.interstitial.isLoaded()) { 
        Passvalues.interstitial.show(); 
       } 
       Passvalues.interstitial.setAdListener(new AdListener() { 
        @Override 
        public void onAdLoaded() { 
         super.onAdLoaded(); 
        } 

        @Override 
        public void onAdClosed() { 
         //finish(); 
         Passvalues.interstitial = null; 
        } 
       }); 
       Passvalues.adCheck = true; 
      } 
     }