title: Android onStop onDestroy called after onCreate
body: <p>I hope you can help me. I don't understand why this is happening to me.</p>
  
  <p>My app is calling onPause(), onStop(), onDestroy() immediately after calling onCreate(). The screen is black. When I press the home button, onPause(), onStop(), onRestart(), onStart() and onResume() are called and everything is fine.
  This only happens on my real device (xperia z2, kitkat 4.4.2).
  This does never happen on my tablet (galaxy tab3, 4.x) and many other emulators.</p>
  
  <p>Have you guys a solution for that problem? Thank you very much.</p>
  
  <p>Here's the Logcat:</p>
  
  <pre><code>05-07 16:16:32.882: I/System.out(5149): onstart() called
  05-07 16:16:32.882: I/System.out(5149): onresume() called
  05-07 16:16:32.902: I/System.out(5149): onpause() called
  05-07 16:16:32.902: I/System.out(5149): onstop() called
  05-07 16:16:32.902: I/System.out(5149): ondestroy() called
  05-07 16:16:33.002: D/dalvikvm(5149): GC_FOR_ALLOC freed 14423K, 28% free 59061K/80924K, paused 13ms, total 13ms
  05-07 16:16:33.012: I/dalvikvm-heap(5149): Grow heap (frag case) to 72.570MB for 14745616-byte allocation
  05-07 16:16:33.032: D/dalvikvm(5149): GC_FOR_ALLOC freed 9K, 10% free 73452K/80924K, paused 13ms, total 13ms
  05-07 16:16:33.052: I/dalvikvm-heap(5149): Grow heap (frag case) to 79.953MB for 7750096-byte allocation
  05-07 16:16:34.012: I/System.out(5149): onstart() called
  05-07 16:16:34.012: I/System.out(5149): onresume() called
  05-07 16:16:34.022: I/Choreographer(5149): Skipped 67 frames!  The application may be doing too much work on its main thread.
  05-07 16:16:34.072: I/Adreno-EGL(5149): &lt;qeglDrvAPI_eglInitialize:410&gt;: EGL 1.4 QUALCOMM build:  ()
  05-07 16:16:34.072: I/Adreno-EGL(5149): OpenGL ES Shader Compiler Version: E031.24.00.06
  05-07 16:16:34.072: I/Adreno-EGL(5149): Build Date: 02/12/14 Wed
  05-07 16:16:34.072: I/Adreno-EGL(5149): Local Branch: au090
  05-07 16:16:34.072: I/Adreno-EGL(5149): Remote Branch: 
  05-07 16:16:34.072: I/Adreno-EGL(5149): Local Patches: 
  05-07 16:16:34.072: I/Adreno-EGL(5149): Reconstruct Branch: 
  05-07 16:16:34.162: D/OpenGLRenderer(5149): Enabling debug mode 0
  05-07 16:16:34.242: I/ActivityManager(5149): Timeline: Activity_idle id: android.os.BinderProxy@447d2510 time:107086183
  05-07 16:16:34.242: I/ActivityManager(5149): Timeline: Activity_idle id: android.os.BinderProxy@447d2510 time:107086183
  05-07 16:17:02.702: I/System.out(5149): onpause() called
  05-07 16:17:03.232: W/IInputConnectionWrapper(5149): showStatusIcon on inactive InputConnection
  05-07 16:17:03.292: I/System.out(5149): onstop() called
  05-07 16:17:04.452: I/System.out(5149): onrestart() called
  05-07 16:17:04.452: I/System.out(5149): onstart() called
  05-07 16:17:04.452: I/System.out(5149): onresume() called
  </code></pre>
  
  <p>Edit:
  That was all the logcat throws out.
  I just found out, that when I hold the device in landscape, it won't call onDestroy().</p>
  
  <p>I implemented:</p>
  
  <pre><code>@Override
  public void onConfigurationChanged(Configuration newConfig) 
  {
      super.onConfigurationChanged(newConfig);
  }
  </code></pre>
  
  <p>and             android:configChanges="orientation|keyboardHidden"</p>
  
  <p>... but still got the same problem.</p>
  
  <p>Code:</p>
  
  <pre><code>package com.example.x;
  
  import java.util.HashMap;
  
  import android.annotation.SuppressLint;
  import android.app.Activity;
  import android.content.SharedPreferences;
  import android.content.SharedPreferences.Editor;
  import android.content.pm.ActivityInfo;
  import android.content.res.Configuration;
  import android.media.AudioManager;
  import android.media.SoundPool;
  import android.os.Bundle;
  import android.view.KeyEvent;
  import android.view.LayoutInflater;
  import android.view.View;
  import android.view.Window;
  import android.view.WindowManager;
  import android.widget.LinearLayout;
  import android.widget.RelativeLayout;
  
  import com.google.android.gms.ads.*;
  
  public class GameActivity extends Activity {
  
      private static InterstitialAd interstitial;
      private AdView adView;
      private GameView theGameView;
      private static SoundPool soundPool;
      private static HashMap&lt;Integer, Integer&gt; soundsMap;
      static int SOUND1=1;
      static int SOUND2=2; 
      static int SOUND3=3; 
      static int SOUND4=4; 
      static int SOUND5=5; 
      static int SOUND6=6; 
      static int SOUND7=7; 
      static int SOUND8=8; 
      static int SOUND9=9; 
      static int SOUND10=10; 
      static int SOUND11=11; 
      static int SOUND12=12; 
      static int SOUND13=13; 
      static int SOUND14=14; 
      static int SOUND15=15; 
      static int SOUND16=16; 
      static int SOUND17=17; 
      static int SOUND18=18; 
      static int SOUND19=19; 
      static int SOUND20=20; 
      static int SOUND21=21; 
      static int SOUND22=22; 
      static int SOUND23=23; 
      static int SOUND24=24; 
      static int SOUND25=25; 
      static int SOUND26=26; 
      static int SOUND27=27; 
      static int SOUND28=28; 
      static float soundVol;
  
  
      @SuppressLint("UseSparseArrays")
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
          requestWindowFeature(Window.FEATURE_NO_TITLE);
          getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
                  WindowManager.LayoutParams.FLAG_FULLSCREEN
                  );
  
          setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
  
  
          theGameView = new GameView(this);
  
          RelativeLayout layout = new RelativeLayout(this);
          adView = new AdView(this);
           adView.setAdUnitId("x");
           adView.setAdSize(AdSize.SMART_BANNER);
           adSetXY(0, GameView.getHeight-GameView.FieldHeight-GameView.FieldHeight/3);
           layout.addView(theGameView);
           layout.addView(adView);
          setContentView(layout);
  
  
  
  
  
           soundPool = new SoundPool(15, AudioManager.STREAM_MUSIC, 100);
              soundsMap = new HashMap&lt;Integer, Integer&gt;();
  
              soundsMap.put(SOUND1, soundPool.load(this, R.raw.click, 1));
              soundsMap.put(SOUND2, soundPool.load(this, R.raw.mpupgradetower, 1));
              soundsMap.put(SOUND3, soundPool.load(this, R.raw.stower1, 1));
              soundsMap.put(SOUND4, soundPool.load(this, R.raw.stower2, 1));
              soundsMap.put(SOUND5, soundPool.load(this, R.raw.stower3, 1));
              soundsMap.put(SOUND6, soundPool.load(this, R.raw.stower4, 1));
              soundsMap.put(SOUND7, soundPool.load(this, R.raw.stower5, 1));
              soundsMap.put(SOUND8, soundPool.load(this, R.raw.stower6, 1));
              soundsMap.put(SOUND9, soundPool.load(this, R.raw.stower7, 1));
              soundsMap.put(SOUND10, soundPool.load(this, R.raw.stower8, 1));
              soundsMap.put(SOUND11, soundPool.load(this, R.raw.stower9, 1));
              soundsMap.put(SOUND12, soundPool.load(this, R.raw.sspecial1, 1));
              soundsMap.put(SOUND13, soundPool.load(this, R.raw.sspecial2, 1));
              soundsMap.put(SOUND14, soundPool.load(this, R.raw.senemy1, 1));
              soundsMap.put(SOUND15, soundPool.load(this, R.raw.senemy2, 1));
              soundsMap.put(SOUND16, soundPool.load(this, R.raw.senemy3, 1));
              soundsMap.put(SOUND17, soundPool.load(this, R.raw.senemy4, 1));
              soundsMap.put(SOUND18, soundPool.load(this, R.raw.senemy5, 1));
              soundsMap.put(SOUND19, soundPool.load(this, R.raw.senemy6, 1));
              soundsMap.put(SOUND20, soundPool.load(this, R.raw.senemy7, 1));
              soundsMap.put(SOUND21, soundPool.load(this, R.raw.senemy8, 1));
              soundsMap.put(SOUND22, soundPool.load(this, R.raw.senemy9, 1));
              soundsMap.put(SOUND23, soundPool.load(this, R.raw.sspecial, 1));
              soundsMap.put(SOUND24, soundPool.load(this, R.raw.gameover, 1));
              soundsMap.put(SOUND25, soundPool.load(this, R.raw.swater, 1));
              soundsMap.put(SOUND26, soundPool.load(this, R.raw.stree, 1));
              soundsMap.put(SOUND27, soundPool.load(this, R.raw.sfastattack, 1));
              soundsMap.put(SOUND28, soundPool.load(this, R.raw.sleben, 1));
  
  
  
           // Create the interstitial.
              interstitial = new InterstitialAd(this);
              interstitial.setAdUnitId("x");
  
              // Create ad request.
              AdRequest adRequest = new AdRequest.Builder()
                      .addTestDevice("B3EEABB8EE11C2BE770B684D95219ECB")
                      .addTestDevice("24610EF96304719510A4C412F8731837")
                      .addTestDevice("CAF0B70544C63E4A52F697BBF35A5BCA")
                      .build();
  
              // Begin loading your interstitial.
              interstitial.loadAd(adRequest);
  
  
               // Initiate a generic request.
               AdRequest adRequest2 = new AdRequest.Builder()
              .addTestDevice("B3EEABB8EE11C2BE770B684D95219ECB")
              .addTestDevice("24610EF96304719510A4C412F8731837")
              .addTestDevice("CAF0B70544C63E4A52F697BBF35A5BCA")      
              .build();
  
               // Load the adView with the ad request.
               adView.loadAd(adRequest2);
  
  
      }
  
      @Override
      public void onConfigurationChanged(Configuration newConfig) 
      {
          super.onConfigurationChanged(newConfig);
      }
  
      public void adLoad()
      {
          runOnUiThread(new Runnable() {
               @Override
               public void run() {
  
                   if(adView != null) {
                      adView.setEnabled(true);
                      adView.setVisibility(View.VISIBLE);
                      adView.resume();
                   }
              }
          });
  
      }
  
      public void adDestroy()
      {
          runOnUiThread(new Runnable() {
               @Override
               public void run() {
  
                   if(adView != null) {
                      adView.setEnabled(false);
                      adView.setVisibility(View.GONE);
                      adView.pause();
                   }
              }
          });
  
      }
  
      public void adSetXY(float x, float y)
      {
           adView.setX(x);
           adView.setY(y);
      }
  
  
      @Override
      protected void onStart() {
          super.onStart();
          System.out.println("onstart() called");
      //  GameView.pause=true;
      }
  
      @Override
      protected void onPause() {
          super.onPause();
          System.out.println("onpause() called");
          GameView.pause=false;
          GameLoopThread.paused=true;
      }
  
      @Override
      protected void onStop() {
          super.onStop();
          System.out.println("onstop() called");
      }
  
      @Override
      protected void onDestroy() {
          adView.destroy();
          System.out.println("ondestroy() called");
          super.onDestroy();
      //  GameView.pause=true;
      }
      @Override
      protected void onResume() {
          super.onResume();
          System.out.println("onresume() called");
          GameLoopThread.unpaused=true;
      }
      @Override
      protected void onRestart() {
          System.out.println("onrestart() called");
          super.onRestart();
      //  GameView.pause=true;
      }
  
  
      public static void displayInterstitial() {
          if (interstitial.isLoaded()) {
            interstitial.show();
          }
        }
  
  }
  </code></pre>