我在我的应用中使用AdMob插页式广告。如果我遵循以下步骤:
用户返回黑屏我的应用程序。经过一些故障排除后,我发现我的应用程序响应的最后一个事件是onPause。随后不会调用onResume。因此,我的应用程序不知道如何重新加载资产并继续游戏。
作为一种解决方法,我将以下代码放在onAdLeftApplication()中:
<?php
$servername = "";
$username = "";
$password = "";
$dbname = "";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$firstname = input_checker($_POST["firstname"]);
$lastname = input_checker($_POST["lastname"]);
$email = input_checker($_POST["email"]);
foreach ($row as $rows) {
// prepare sql and bind parameters
$stmt = $conn->prepare("INSERT INTO memo (firstname, lastname, email)
VALUES (:firstname, :lastname, :email)");
$stmt->bindParam(':firstname', $rows);
$stmt->bindParam(':lastname', $rows);
$stmt->bindParam(':email', $rows);
$stmt->execute();
echo "New records created successfully";
}
}
}
catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
$conn = null;
function input_checker($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
这样,如果用户立即关闭广告,他将立即返回游戏,但如果他决定点击广告,则我的游戏将关闭,因此他必须重新启动-看上去不漂亮,但比冻结效果更好。
有人可以推荐一种更好的方法来解决此问题吗?在onAdLeftApplication中,我应该做些不同的事情来确保我的代码在广告关闭后收到onResume消息吗?我还应该听其他事件吗?
一个脚注,我已经向该应用程序添加了Firebase,虽然不确定这到底意味着什么,但是它应该做的很棒,在这种情况下,我没有看到有关如何响应admob插页式广告的任何其他说明。 / p>
谢谢!
答案 0 :(得分:0)
尝试此操作可能会对您有所帮助。
public void loadInterstitial() {
// Instantiate an InterstitialAd object
AdSettings.addTestDevice("350cf676a5848059b96313bdddc21a35");
interstitialAd = new InterstitialAd(MainActivity.this,"222591425151579_222592145151XXX");
interstitialAd.loadAd();
// Set listeners for the Interstitial Ad
interstitialAd.setAdListener(new InterstitialAdListener() {
@Override
public void onInterstitialDisplayed(Ad ad) {
Log.v("OkHttp", ad.toString());
}
@Override
public void onInterstitialDismissed(Ad ad) {
Log.v("OkHttp", ad.toString());
}
@Override
public void onError(Ad ad, AdError adError) {
Log.v("OkHttp", ad.toString() + " " + adError.getErrorCode() + " " + adError.getErrorMessage());
}
@Override
public void onAdLoaded(Ad ad) {
Log.v("OkHttp", ad.toString());
showInterstitial();
}
@Override
public void onAdClicked(Ad ad) {
Log.v("OkHttp", ad.toString());
}
@Override
public void onLoggingImpression(Ad ad) {
Log.v("OkHttp", ad.toString());
}
});
}
public void showInterstitial() {
interstitialAd.show();
}
现在,在单击dismiss或AdLoaded之后,执行下一步要继续游戏的代码,您将获得所有事件的侦听器,并且可以为每个事件设置不同的情况。