2013-10-11 5 views
0

오늘 AdMob으로 전환했습니다. 내 문제 : 삽입 광고를로드하는 시간이 꽤 길다 (최대 10 회의 sconds).AdMob 삽입 광고는 버튼을 누른 후 바로 표시됩니까?

내 앱 : 사용자가 약 10 초 동안 머무르는 결과 활동이 있습니다. 이 Activty에있는 MainActivty (내 경우에는 "Home")로 돌아가는 마침 버튼입니다. 응용 프로그램을 닫는 다른 마침 버튼이 있습니다.

내 질문 : 사용자가 결과 활동에있는 동안 삽입 광고를로드 할 수 있습니까? 사용자가 완료 버튼을 눌렀을 때 잠시 튀어 나오게 할 수 있습니까?

내 코드는 ATM :

에서 OnCreate

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


    this.interstitialAds = new InterstitialAd(this, "xxxMyCodeIDxxx"); 
    this.interstitialAds.setAdListener(this);} 

과의 onclick :

@Override 
     public void onClick(View v) { 

      Result.this.finish(); 
      startActivity(new Intent(Result.this, Home.class)); 
      AdRequest adr = new AdRequest(); 
        adr.addTestDevice("xxxMyCodexxx"); 
        interstitialAds.loadAd(adr);} 

과 (중요) 끝 :

@Override 
public void onDismissScreen(Ad arg0) { 
} 

@Override 
public void onFailedToReceiveAd(Ad ad, ErrorCode error) { 
    Toast.makeText(Result.this, "No ad found!", Toast.LENGTH_LONG) 
    .show(); 
} 

@Override 
public void onLeaveApplication(Ad arg0) { 
    // TODO Auto-generated method stub 
} 

@Override 
public void onPresentScreen(Ad arg0) { 
} 

@Override 
public void onReceiveAd(Ad arg0) { 
    if (interstitialAds.isReady()) { 
     interstitialAds.show(); 
    } else { 
     Toast.makeText(Result.this, "Interstitial ad was not ready to be shown.", Toast.LENGTH_LONG) 
     .show(); 
    } 
} 

내가 그것을 사용하는 경우 이처럼 삽입 광고로드 끝 버튼을 클릭하면 팝업이 표시되지만 최대 10 초가 소요됩니다. 이번에는 모두가 MainActivity의 2nd exit 버튼을 클릭하여 앱을 종료했습니다.

감사합니다.

답변

1

이전에 광고를로드 한 다음 결과 활동이 끝나면 광고를 표시해야합니다.

그래서 같이 홈 #에서 onCreate 동안 광고를로드하는 것이 좋습니다 :

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


    this.interstitialAds = new InterstitialAd(this, "xxxMyCodeIDxxx"); 
    this.interstitialAds.setAdListener(this); 

    final AdRequest adr = new AdRequest(); 
    adr.addTestDevice("xxxMyCodexxx"); 
    interstitialAds.loadAd(adr); 
} 

그리고 단추를 클릭 할 때 시작 ResultActivity 당신이이 완료 될 때 통지 및 완료에 광고를 게재 할 것 같은 것을 (이 경우 사용할 수 있습니다).

private static final int MY_REQUEST_CODE = 1; 

@Override 
public void onClick(View v) { 
    // Result.this.finish(); // I don't know why you are calling this - it looks wrong. 
    startActivityForResult(new Intent(Result.this, Home.class), MY_REQUEST_CODE); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode = MY_REQUEST_CODE) { 
     if (interstitialAds.isReady()) { 
      interstitialAds.show(); 
     } else { 
      Toast.makeText(Result.this, "Interstitial ad was not ready to be shown.", Toast.LENGTH_LONG).show(); 
     } 
    } 
} 

ResultActivity에서 어떤 점에서 #setResult (someValue)를 호출해야합니다. 나는 onCreate 동안 그것을 할 것입니다.

유일한 문제는 ResultActivity가 표시되는 동안 홈 액티비티가 가비지 수집되는 경우입니다.이 경우 InterstitialAd도 손실되고 다시로드해야하지만이 경우 대부분의 기기에서는 거의 작동하지 않을 수 있습니다. 너 자신을 두었다. 나는 다른 선택권을 보지 못한다.

관련 문제