昨天谷歌暂停我的应用程序从谷歌商店说我的广告是针对谷歌TOS。基本上有一种bug,我的错很明显,在某些设备中,如果你按下主页按钮并让应用程序在后台,广告也会继续显示。 我真的不知道如何解决它。
这是xml代码
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adSize="INTERSTITIAL"
ads:adUnitId="MyID" >
</com.google.android.gms.ads.AdView>
这是主要的
public class MainActivity extends ActionBarActivity
{
private WebView webView;
private InterstitialAd interstitial;
String Url="Myurl";
List<String> segments = new ArrayList<String>();
int delay = 120000; //milliseconds
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run()
{
//advertise();
handler.postDelayed(this, delay);
}
}, 7000);
//
}
public void advertise()
{
// Prepare the Interstitial Ad
interstitial = new InterstitialAd(MainActivity.this);
// Insert the Ad Unit ID
interstitial.setAdUnitId("MyID");
//Locate the Banner Ad in activity_main.xml
AdView adView = (AdView) this.findViewById(R.id.adView);
// Request for Ads
AdRequest adRequest = new AdRequest.Builder()
// Add a test device to show Test Ads
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("CC5F2C72DF2B356BBF0DA198")
.build();
// Load ads into Banner Ads
adView.loadAd(adRequest);
// Load ads into Interstitial Ads
interstitial.loadAd(adRequest);
// Prepare an Interstitial Ad Listener
interstitial.setAdListener(new AdListener()
{
public void onAdLoaded() {
// Call displayInterstitial() function
displayInterstitial();
}
});
}
public void displayInterstitial()
{
// If Ads are loaded, show Interstitial else show nothing.
if (interstitial.isLoaded())
{
interstitial.show();
}
}*/
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId())
{
case R.id.twitter:
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/salvoaranzulla"));
startActivity(browserIntent);
break;
case R.id.facebook:
Intent browserIntent1 = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/salvoaranzulla?ref=ts&fref=ts"));
startActivity(browserIntent1);
break;
}
return true;
}
}
答案 0 :(得分:3)
制作处理程序和可运行的字段变量,然后像这样启动和停止它们。
@Override
public void onStart() {
super.onStart();
mHandler.postDelayed(mUpdateTimeTask, delay);
}
@Override
public void onStop() {
super.onStop();
mHandler.removeCallbacks(mUpdateTimeTask);
}
答案 1 :(得分:1)
如果每部手机都没有出现此问题,则问题可能出在该用户的移动设置中。 只需检查是否选择了他/她的“设置&gt;开发人员选项&gt;不保留活动”。 如果选中它,则应用程序将在用户离开当前活动后立即销毁每个活动。 因此,当显示插页式广告时,当前活动通常会在onPause中。 但它将被销毁,当用户关闭插页式广告并再次返回创建时 运行,广告将显示。
如果你想在活动离开焦点时控制这些东西,它将属于onPause(),onStop()或onDestroy(),具体取决于你需要的控制级别。
答案 2 :(得分:0)
您的应用可能因此而被禁止:
// Prepare an Interstitial Ad Listener
interstitial.setAdListener(new AdListener()
{
public void onAdLoaded() {
// Call displayInterstitial() function
displayInterstitial();
}
});
不显示来自onAdLoaded()
的广告,并在应用中的自然断点处显示。