2015-11-10 72 views
18

中未恢復的活動我在一個項目上工作了好幾天,工作正常。但是,今天我跑我在模擬器應用程序,暫停在啓動畫面不會主要活動及其顯示錯誤: - Performing stop of activity that is not resumeava.lang.RuntimeException: Performing stop of activity that is not resumedjava.lang.RuntimeException:正在執行停止在android

我SplashScreen.java:-

public class SplashScreen extends AppCompatActivity { 

    private static int SPLASH_TIME_OUT = 3000; 
    Boolean flag = false; 
    public static Activity activity_splash; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
       WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     setContentView(R.layout.splash_screen); 

    } 
    public void onResume(){ 
     super.onResume(); 
     new Handler().postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       Intent i = new Intent(SplashScreen.this, MainActivity.class); 
       startActivity(i); 
       finish(); 
      } 
     }, SPLASH_TIME_OUT); 
    } 

} 

我logcat的: -

11-10 13:56:01.721 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread: Performing stop of activity that is not resumed: {shoppingmazza.android.catalyst.com.shoppingmazza/shoppingmazza.android.catalyst.com.shoppingmazza.activity.MainActivity} 
    11-10 13:56:01.721 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread: java.lang.RuntimeException: Performing stop of activity that is not resumed: {shoppingmazza.android.catalyst.com.shoppingmazza/shoppingmazza.android.catalyst.com.shoppingmazza.activity.MainActivity} 
    11-10 13:56:01.721 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3465) 
    11-10 13:56:01.721 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3550) 
    11-10 13:56:01.721 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at android.app.ActivityThread.-wrap20(ActivityThread.java) 
    11-10 13:56:01.721 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373) 
    11-10 13:56:01.721 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at android.os.Handler.dispatchMessage(Handler.java:102) 
    11-10 13:56:01.721 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at android.os.Looper.loop(Looper.java:148) 
    11-10 13:56:01.721 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at android.app.ActivityThread.main(ActivityThread.java:5417) 
    11-10 13:56:01.721 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at java.lang.reflect.Method.invoke(Native Method) 
    11-10 13:56:01.721 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
    11-10 13:56:01.721 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
    11-10 13:56:04.262 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread: Performing stop of activity that is not resumed: {shoppingmazza.android.catalyst.com.shoppingmazza/shoppingmazza.android.catalyst.com.shoppingmazza.activity.MainActivity} 
    11-10 13:56:04.262 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread: java.lang.RuntimeException: Performing stop of activity that is not resumed: {shoppingmazza.android.catalyst.com.shoppingmazza/shoppingmazza.android.catalyst.com.shoppingmazza.activity.MainActivity} 
    11-10 13:56:04.262 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3465) 
    11-10 13:56:04.262 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3550) 
    11-10 13:56:04.262 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at android.app.ActivityThread.-wrap20(ActivityThread.java) 
    11-10 13:56:04.262 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373) 
    11-10 13:56:04.262 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at android.os.Handler.dispatchMessage(Handler.java:102) 
    11-10 13:56:04.262 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at android.os.Looper.loop(Looper.java:148) 
    11-10 13:56:04.262 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at android.app.ActivityThread.main(ActivityThread.java:5417) 
    11-10 13:56:04.262 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at java.lang.reflect.Method.invoke(Native Method) 
    11-10 13:56:04.262 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
    11-10 13:56:04.262 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
    11-10 13:56:06.857 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread: Performing stop of activity that is not resumed: {shoppingmazza.android.catalyst.com.shoppingmazza/shoppingmazza.android.catalyst.com.shoppingmazza.activity.MainActivity} 
    11-10 13:56:06.857 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread: java.lang.RuntimeException: Performing stop of activity that is not resumed: {shoppingmazza.android.catalyst.com.shoppingmazza/shoppingmazza.android.catalyst.com.shoppingmazza.activity.MainActivity} 
    11-10 13:56:06.857 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3465) 
    11-10 13:56:06.857 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3550) 
    11-10 13:56:06.857 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at android.app.ActivityThread.-wrap20(ActivityThread.java) 
    11-10 13:56:06.857 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373) 
    11-10 13:56:06.857 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at android.os.Handler.dispatchMessage(Handler.java:102) 
    11-10 13:56:06.857 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at android.os.Looper.loop(Looper.java:148) 
    11-10 13:56:06.857 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at android.app.ActivityThread.main(ActivityThread.java:5417) 
    11-10 13:56:06.857 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at java.lang.reflect.Method.invoke(Native Method) 
    11-10 13:56:06.857 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
    11-10 13:56:06.857 1995-1995/shoppingmazza.android.catalyst.com.shoppingmazza E/ActivityThread:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

MainActivity.java:-

public class MainActivity extends AppCompatActivity implements FragmentDrawer.FragmentDrawerListener { 

     // flag for Internet connection status 
     Boolean isInternetPresent = false; 

     // Connection detector class 
     ConnectionDetector cd; 

     private static String TAG = MainActivity.class.getSimpleName(); 

     AlertDialogManager alert = new AlertDialogManager(); 

     // Session Manager Class 
     UserSessionManager session; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 

      // Session class instance 
      session = new UserSessionManager(getApplicationContext()); 
      Toolbar mToolbar = (Toolbar) findViewById(R.id.toolbar); 

      setSupportActionBar(mToolbar); 
      getSupportActionBar().setTitle(null); 
      getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
      getSupportActionBar().setDisplayShowHomeEnabled(true); 

      cd = new ConnectionDetector(getApplicationContext()); 

      isInternetPresent = cd.isConnectingToInternet(); 

      // check for Internet status 
      if (isInternetPresent) { 
       FragmentDrawer drawerFragment = (FragmentDrawer) 
         getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer); 
       drawerFragment.setUp(R.id.fragment_navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout), mToolbar); 
       drawerFragment.setDrawerListener(this); 

       // display the first navigation drawer view on app launch 
       displayView(0); 
      } 
      else { 

       alert.showAlertDialog(MainActivity.this, "No Internet Connection", 
         "You don't have internet connection.", false); 
      } 

     } 
     @Override 
     public boolean onCreateOptionsMenu(Menu menu) { 
      getMenuInflater().inflate(R.menu.menu_main, menu); 
      return true; 
     } 

     @Override 
     public boolean onOptionsItemSelected(MenuItem item) { 
      switch(item.getItemId()){ 
       case R.id.action_search: 
        Intent search = new Intent(MainActivity.this,SearchActivity.class); 
        startActivity(search); 
        return true; 
       case R.id.login: 
        if(session.checkLogin()) 
         finish(); 
        else { 
          Intent intent = new Intent(MainActivity.this,MyAccount.class); 
           startActivity(intent); 
        } 
        return true; 
       case R.id.my_order: 
        alert.showAlertDialog(MainActivity.this,"Alert","This Page Under Maintenance",false); 
        return true; 
       case R.id.wishlist: 
        if(session.checkLogin()){ 
         finish(); 
        } 
        else { 
         Intent wishlistIntent = new Intent(MainActivity.this,WishList.class); 
         startActivity(wishlistIntent); 
        } 

       default: 
        return super.onOptionsItemSelected(item); 
      } 
     } 

     @Override 
     public void onDrawerItemSelected(View view, int position) { 
      displayView(position); 
     } 

     private void displayView(int position) { 
      Fragment fragment = null; 
      String title = getString(R.string.app_name); 
      switch (position) { 
       case 0: 
        /* fragment = new HomeFragment(); 
        title = getString(R.string.title_home);*/ 
        Intent intentHome = new Intent(MainActivity.this,MainActivity.class); 
        startActivity(intentHome); 
        break; 
       case 1: 
        Intent intent = new Intent(MainActivity.this,ShopByCategory.class); 
        startActivity(intent); 

        break; 
       case 2: 

        break; 
       case 3: 
        /* Intent intentTodayDeal = new Intent(MainActivity.this,TodayDeal.class); 
        startActivity(intentTodayDeal);*/ 
        /*Intent intent = new Intent(MainActivity.this,ShopByCategory.class); 
        startActivity(intent);*/ 
        break; 
       case 4: 
        Intent intentTrackYourOrder = new Intent(MainActivity.this,MainActivity.class); 
        startActivity(intentTrackYourOrder); 
        break; 
       case 5: 
        Intent intentLegal = new Intent(MainActivity.this,Legal.class); 
        startActivity(intentLegal); 
        break; 
       case 6: 
        break; 
       case 7: 
        break; 
       case 8: 
        break; 
       case 9: 
        break; 
       default: 
        break; 
      } 

      if (fragment != null) { 
       FragmentManager fragmentManager = getSupportFragmentManager(); 
       FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
       fragmentTransaction.replace(R.id.container_body, fragment); 
       fragmentTransaction.commit(); 

       // set the toolbar title 
       getSupportActionBar().setTitle(null); 
       getSupportActionBar().setLogo(R.drawable.ic_launcher); 
      } 
     } 

    } 
+0

你也有一個按鈕來跳過你的飛濺? –

+0

向我們展示您的logcat錯誤。 – TdSoft

+0

看到我的@edited問題 –

回答

18

MainActivityonCreate,如果有互聯網接入,您將撥打displayView(0);。在displayView

case 0: 
    Intent intentHome = new Intent(MainActivity.this,MainActivity.class); 
    startActivity(intentHome); 
    break; 

這裏再次啓動MainActivity,因此應用程序陷入了死循環。最終它崩潰。

1

試着把日誌放在這裏和那裏。我會在startActivity(i)之後立即查看finish();是否曾經執行過。看來你進入無限循環MainActivityonCreate()方法。 onResume()MainActivity從來沒有完成,所以你會得到一個異常。

1

嘗試從處理程序中取出finish()並在Splash Activity的onPause()中調用它。

這就是說,如果我正在做一個閃屏,我可能會將它作爲我的主屏幕布局的一部分,然後在給定的時間段後隱藏它。這樣我根本不需要飛濺活動。

1

嘗試將新的Handler()...代碼塊放入onCreate()方法中。

+0

它是否存在問題? – manetsus

+0

是的,看看@Arun kumar的答案,同樣的想法:) – Donkie

1

移動這個代碼onResume()onCreate()

new Handler().postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       Intent i = new Intent(SplashScreen.this, MainActivity.class); 
       startActivity(i); 
       finish(); 
      } 
     }, SPLASH_TIME_OUT); 
1

移動後延遲調入的onCreate()。 在調用finish()之前添加檢查isResumed();

1

重命名你的onResume()方法調用onStart()

public class SplashScreen extends AppCompatActivity { 

private static int SPLASH_TIME_OUT = 3000; 
Boolean flag = false; 
public static Activity activity_splash; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
      WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    setContentView(R.layout.splash_screen); 

} 
public void onStart(){ 
    super.onResume(); 
    new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      Intent i = new Intent(SplashScreen.this, MainActivity.class); 
      startActivity(i); 
      finish(); 
     } 
    }, SPLASH_TIME_OUT); 
} 

} 
3

的飛濺是正確的。 問題是內存。

如果應用互聯網總是調用displayView(0);打開類型MainActivity

private void displayView(int position) { 
      switch (position) { 
       case 0: 
        Intent intentHome = new Intent(MainActivity.this,MainActivity.class); 
        startActivity(intentHome); 
        break; 

的另一個活動循環的意圖,直到你離開的內存

enter image description here

爲了解決這個問題,停止調用相同的活動。