java.lang.RuntimeException:停止在android中未恢复的活动
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/33626151/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
java.lang.RuntimeException: Performing stop of activity that is not resumed in android
提问by Anand Jain
I am working on a project for several days and its working fine. But today I ran my app in emulator app, is paused on splash screen not going to main activity and Its showing an error:-Performing stop of activity that is not resume
and ava.lang.RuntimeException: Performing stop of activity that is not resumed
我在一个项目上工作了几天,并且工作正常。但是今天我在模拟器应用程序中运行了我的应用程序,在启动屏幕上暂停,不会进入主要活动,并且显示错误:-Performing stop of activity that is not resume
和ava.lang.RuntimeException: Performing stop of activity that is not resumed
My SplashScreen.java:-
我的 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);
}
}
My Logcat:-
我的 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:-
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);
}
}
}
采纳答案by shhp
In onCreate
of the MainActivity
, if there is internet access you will call displayView(0);
. In displayView
,
在onCreate
的MainActivity
,如果有互联网接入,你会打电话displayView(0);
。在displayView
,
case 0:
Intent intentHome = new Intent(MainActivity.this,MainActivity.class);
startActivity(intentHome);
break;
Here you start MainActivity
again and thus the app is trapped in a infinite loop. Eventually it crashes.
在这里,您重新开始MainActivity
,因此应用程序陷入了无限循环。最终它崩溃了。
回答by RexSplode
Try to put Logs here and there. I would put right after startActivity(i)
to see if finish();
is ever executed. It seems that you get into infinite loop in MainActivityonCreate()
method. The onResume()
of MainActivityis never done, so you get an exception.
尝试将日志放在这里和那里。我会startActivity(i)
立即查看是否finish();
被执行。您似乎在MainActivityonCreate()
方法中进入了无限循环。该onResume()
的MainActivity是永远做不完的,所以你得到一个异常。
回答by mjstam
Try taking the finish() out of the handler and calling it in the onPause() of your Splash Activity.
尝试从处理程序中取出 finish() 并在 Splash Activity 的 onPause() 中调用它。
That said if I was doing a splash screen I'd probably make it a part of my main screen layout and then just hide it after a given period of time. That way I don't need the splash activity at all.
也就是说,如果我在做一个闪屏,我可能会把它作为我的主屏幕布局的一部分,然后在给定的时间段后隐藏它。这样我根本不需要飞溅活动。
回答by Donkie
Try to put the new Handler()...code block in onCreate() method.
尝试将新的 Handler()...代码块放在 onCreate() 方法中。
回答by Arun kumar
move this code from onResume()
to onCreate()
:
将此代码从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);
回答by Tronum
Move post delay calling into onCreate(). Add check isResumed() before calling finish();
将后期延迟调用移动到 onCreate() 中。在调用finish()之前添加检查isResumed();
回答by Luca Ziegler
Rename your onResume() method to onStart()
将您的 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);
}
}
回答by alejandrocordon
The Splash is correct. The problem is the Memory.
飞溅是正确的。问题是内存。
If the App has internet always calls displayView(0);
that opens another activity of type MainActivity
如果应用程序有互联网调用displayView(0);
,它会打开另一个 MainActivity 类型的活动
private void displayView(int position) {
switch (position) {
case 0:
Intent intentHome = new Intent(MainActivity.this,MainActivity.class);
startActivity(intentHome);
break;
looping the intent until you get out of memory
循环意图直到内存不足
To solve the problem, stop calling the same activity.
要解决问题,请停止调用相同的活动。