2016-05-05 3 views
0

私は何時間も立ち往生しています。私は自分のアプリケーションにadmob広告を統合しています。ユーザーがテキストを編集するときに追加しますが、何回かスキップしながら広告を読み込むのに時間がかかります。ユーザーがテキストを入力して次のアクティビティに移動します。時間内に読み込みます。 この問題を解決する方法を教えてください。事前にAdMob広告がAndroidアプリケーションで読み込むのに時間がかかります

おかげ

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 これは広告#onAdLoaded()

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(); 
    } 






} 

答えて

0

代わりの広告を表示するための活動ですコールバック、ナチュウ​​に表示するラルフブレークポイントは#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; 
      } 
     } 
関連する問題