アプリケーションに Admob を実装しようとすると、非常に厄介なバグが発生します。問題は自分のコードにあると思っていましたが、調査の結果、Android-Banner-Essentials の例 (ここからダウンロードできます) にも存在することがわかりました。誰かがこの問題に遭遇したことがあるか、または対処方法を知っているのではないかと思います。
基本的に、アプリケーションのステータス バーとタイトル バーの両方が無効になっている場合は、フル スクリーンを使用する必要があります。Banner Essentials の例では、使用可能な領域の最上部に Admob バナーのみが表示されます。サンプルをダウンロードしましたが、変更したのは次の 2 つだけです。
- 適切にコンパイルして広告を受け取るために、発行元 ID を追加しました ;)
- アクティビティのマニフェストに 1 つのパラメータを追加して、タイトルとステータス バーを無効にしました: android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
コンパイルされたバイナリは、起動されたデバイス (Nexus One、G1、Desire、さまざまな Android バージョンを試した) に関係なく、同じ問題の影響を受けます。
- 広告バナーが表示されたらホームを押し、
- ホーム画面に戻ったら、ホームを長押しして、最近起動したアプリを表示します。
- 戻る Banner Essentials アプリを選択します。
私のテストでは、50% の再現率で Admob バナーが元の位置 (画面の一番上) に戻らないことがわかりました。私が意味することをよりよく示すために、3 つのスクリーンショットを用意しました。
http://img841.imageshack.us/g/correctz.png/
重要なお知らせ:
- アプリが正常に再開されると、バナーがステータスバーのすぐ下に表示され、画面上部の境界に揃えられるまで上にスライドし、
- エラーが出てバナーが全く動かない、
- 他の割り込み (戻る、電源ボタンを押す) では問題を再現できませんでした。
- 何らかの形でフォーカスの獲得/喪失に関連していると思います (スクリーンショットを参照)。
私のアプリは Banner Essentials よりも少し複雑なので、コードで問題を検索することから始めましたが、運が悪かったため、状況をできるだけ単純化しようとしました。
問題の原因を知っている人はいますか? この動作を処理するには、追加のフラグまたはプロパティを設定する必要があるのではないでしょうか?