2015-04-26 6 views
1

Я создал игру в Android, и я заметил мобильник друга, что, когда вы нажимаете InterstitialAd, который переводит вас в игровой магазин google, а затем вы возвращаетесь в приложение с помощью кнопки «Назад», перезапуске приложение, где он должен продолжать, откуда он былAndroid-приложение перезагружается после InterstitialAd

У меня возникли проблемы тестирования это потому, что я не имею право щелкать свои собственные объявления и такое поведение не может быть воспроизведено с помощью тестовых объявлений

Я не уверен, часть кода для сообщения

@Override 
protected void onResume() { 
    mgr.registerListener(this, accelerometer, SensorManager.SENSOR_DELAY_FASTEST); 
    super.onResume(); 
} 

@Override 
protected void onPause() { 
    mgr.unregisterListener(this, accelerometer); 
    super.onPause(); 
} 

и манифест

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="xxx" 
    android:versionCode="8" 
    android:versionName="1.7" > 

    <uses-sdk 
     android:minSdkVersion="9" 
     android:targetSdkVersion="18" /> 

<uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <meta-data android:name="com.google.android.gms.version" 
     android:value="@integer/google_play_services_version" /> 

     <activity 
      android:name="com.xxx.FullscreenActivity" 
      android:configChanges="orientation|keyboardHidden|screenSize" 
      android:screenOrientation="landscape" 
      android:label="@string/app_name" 
      android:keepScreenOn="true" 
      android:theme="@style/FullscreenTheme" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
<!-- AdMobActivity definition --> 
<activity 
     android:name="com.google.android.gms.ads.AdActivity" 
     android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" 
     android:theme="@android:style/Theme.Translucent" /> 

    </application> 

</manifest> 

ответ

0

Вы не можете остановить Android уничтожить вашу активность, когда он больше не на переднем плане. Это часть платформы Android.

Что вам нужно сделать, это использовать onSaveInstanceState и onRestoreInstanceState, чтобы скрыть состояние вашей активности, когда оно будет уничтожено, чтобы ваше приложение могло продолжить работу после того, как его прервало другое приложение (например, игра Google или телефонный дозвон).

0

Сегодня у меня есть аналогичные проблемы (моя игра перезапускается после того, как admob Interstitial Ad показывает). Но я получил его не после того, как объявление было нажато, как в вашем случае (я также не могу нажимать на объявления в своей игре, так как я тоже разработчик), но я получил его после того, как видеообъявления попытались показать в Admob InterstitialAd.

Я подключил устройство к компьютеру, открыл LogCat и начать играть в игру, пока видеореклама снова не появился, и я поймала причину перезагрузки:

06-09 19:04:07.445: W/System.err(29032): java.lang.SecurityException: Neither user 10124 nor current process has android.permission.WAKE_LOCK. 
06-09 19:04:07.445: W/System.err(29032): at android.os.Parcel.readException(Parcel.java:1465) 
06-09 19:04:07.445: W/System.err(29032): at android.os.Parcel.readException(Parcel.java:1419) 
06-09 19:04:07.445: W/System.err(29032): at android.os.IPowerManager$Stub$Proxy.acquireWakeLock(IPowerManager.java:302) 
06-09 19:04:07.445: W/System.err(29032): at android.os.PowerManager$WakeLock.acquireLocked(PowerManager.java:719) 
06-09 19:04:07.445: W/System.err(29032): at android.os.PowerManager$WakeLock.acquire(PowerManager.java:688) 
06-09 19:04:07.455: W/System.err(29032): at android.media.MediaPlayer.stayAwake(MediaPlayer.java:1153) 
06-09 19:04:07.455: W/System.err(29032): at android.media.MediaPlayer.start(MediaPlayer.java:1063) 
06-09 19:04:07.455: W/System.err(29032): at com.android.org.chromium.media.MediaPlayerBridge.start(MediaPlayerBridge.java:98) 
06-09 19:04:07.455: W/System.err(29032): at com.android.org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method) 
06-09 19:04:07.455: W/System.err(29032): at com.android.org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:27) 
06-09 19:04:07.455: W/System.err(29032): at android.os.Handler.dispatchMessage(Handler.java:102) 
06-09 19:04:07.455: W/System.err(29032): at android.os.Looper.loop(Looper.java:136) 
06-09 19:04:07.455: W/System.err(29032): at android.app.ActivityThread.main(ActivityThread.java:5038) 
06-09 19:04:07.455: W/System.err(29032): at java.lang.reflect.Method.invokeNative(Native Method) 
06-09 19:04:07.465: W/System.err(29032): at java.lang.reflect.Method.invoke(Method.java:515) 
06-09 19:04:07.465: W/System.err(29032): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795) 
06-09 19:04:07.465: W/System.err(29032): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:611) 
06-09 19:04:07.465: W/System.err(29032): at dalvik.system.NativeStart.main(Native Method) 

И.Э. для этого потребовалось разрешение WAKE_LOCK. После того, как я добавил его:

<uses-permission android:name="android.permission.WAKE_LOCK" /> 

я играть в игру снова, пока видеореклама не было показано в межузельных объявлений и теперь он работает отлично !!!

Так, я думаю, он также может решить вашу проблему.

Смежные вопросы