2012年4月24日火曜日

Admobでクラッシュした

admobを使って作ったアプリでアクティビティをすぐに切り替えるとクラッシュしていたので、
そのことを書きたいと思います。

ゲームの構成は、

タイトル画面に戻れるように、タイトル画面の用のアクティビティ(1とします)は常に生きている状態

タイトル画面のSTARTをクリックすると他のゲーム用のActivity(2とします)が起動するという感じです。
この後戻るボタンでタイトルに戻るとこのゲームアクティビティのDestroyが呼ばれるという構成です。

で、戻るボタンを押して、すぐにスタートをタッチすると、死んだはずの(2)のonStopが呼ばれずにアクティビティが生きたままになってしまうので、落ちてしまう。(原因はわかりません)

なので、解決方法は、
public class game extends Activity{

    private FrameLayout frameLayout;        // レイアウトを持つ
    private AdView m_Ad;
    @Override
 public void onPause(){
  super.onPause();
  // 広告をviewから切り離す
  frameLayout.removeView(m_Ad);          
 }

 @Override
 public void onRestart(){
  super.onRestart();
  frameLayout.addView(m_Ad);      // レイアウトに貼り付ける
 }

これで、アクティビティをすぐに切り替えても落ちなくなった。

アクティビティを切り替えるようにはできてますが、
一つのアクティビティでゲームを作ったほうがいいのかもと思いました。
個人的メモでした。

0 件のコメント:

コメントを投稿