まず、3 つの異なるレイアウトにつながる 3 つのボタンを備えたメニューがあります。私が欲しいのは、アプリケーションを閉じたときにインタースティシャル広告を表示したいです。何が起こるか、メモリを節約するために、すべてのボタンに finish() を追加して、すべてのメモリを消費しないようにする必要がありました。ボタンをクリックすると、インタースティシャル広告が表示されます。
アクティビティを切り替えたときではなく、アプリを完全に閉じたときにのみインタースティシャルを表示するようにコードを設定できません。私のコード:
package puske.com;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import com.google.ads.*;
import com.google.ads.AdRequest.ErrorCode;
public class Menu extends Activity implements AdListener {
private InterstitialAd interstitial;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu);
interstitial = new InterstitialAd(this, "ID");
// Create ad request
AdRequest adRequest = new AdRequest();
// Begin loading your interstitial
interstitial.loadAd(adRequest);
// Set Ad Listener to use the callbacks below
interstitial.setAdListener(this);
}
@Override
public void onReceiveAd(Ad ad) {
{
Button button1=(Button)findViewById(R.id.menu1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Menu.this, Rifles.class));
finish();
}
});
Button button2=(Button)findViewById(R.id.menu2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Menu.this, Pistols.class));
finish();
}
});
Button button4=(Button)findViewById(R.id.menu3);
button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Menu.this, Snipers.class));
finish();
}
});
}
}
@Override
protected void onDestroy() {
interstitial.show();
super.onDestroy();
// explicitly release media player
unbindDrawables(findViewById(R.id.menuzor));
System.gc();
}
private void unbindDrawables(View view) {
if (view.getBackground() != null) {
view.getBackground().setCallback(null);
}
if (view instanceof ViewGroup) {
for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
unbindDrawables(((ViewGroup) view).getChildAt(i));
}
try
{
((ViewGroup) view).removeAllViews();
}
catch(UnsupportedOperationException ignore)
{
}
}
}
@Override
public void onLeaveApplication(Ad arg0) {
// TODO Auto-generated method stub
}
@Override
public void onDismissScreen(Ad arg0) {
// TODO Auto-generated method stub
}
@Override
public void onFailedToReceiveAd(Ad arg0, ErrorCode arg1) {
// TODO Auto-generated method stub
}
@Override
public void onPresentScreen(Ad arg0) {
// TODO Auto-generated method stub
}
}