我正在做一个项目好几天,工作正常。但是今天我在模拟器应用程序中运行了我的应用程序,在启动画面上暂停而没有进入主要活动并显示错误: - Performing stop of activity that is not resume
和ava.lang.RuntimeException: Performing stop of activity that is not resumed
我的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 :(得分:19)
在onCreate
的{{1}}中,如果有互联网访问权限,您将拨打MainActivity
。在displayView(0);
,
displayView
在这里,您再次启动case 0:
Intent intentHome = new Intent(MainActivity.this,MainActivity.class);
startActivity(intentHome);
break;
,因此应用程序陷入无限循环。最终它崩溃了。
答案 1 :(得分:3)
Splash是正确的。 问题是记忆。
如果应用互联网始终呼叫displayView(0);
,则会打开另一个类型为MainActivity的活动
private void displayView(int position) {
switch (position) {
case 0:
Intent intentHome = new Intent(MainActivity.this,MainActivity.class);
startActivity(intentHome);
break;
循环意图直到内存不足
要解决此问题,请停止调用相同的活动。
答案 2 :(得分:2)
尝试从处理程序中取出finish()并在Splash Activity的onPause()中调用它。
如果说我正在制作启动画面,我可能会把它作为主屏幕布局的一部分,然后在一段时间后隐藏它。这样我根本不需要启动活动。
答案 3 :(得分:2)
将此代码从 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);
答案 4 :(得分:1)
尝试将日志放在此处。我会在startActivity(i)
之后立即查看finish();
是否被执行过。您似乎在 MainActivity onCreate()
方法中进入无限循环。 MainActivity 的onResume()
永远不会完成,因此您会遇到异常。
答案 5 :(得分:1)
尝试将新的Handler()...代码块放在onCreate()方法中。
答案 6 :(得分:1)
将后延迟调用移入onCreate()。 在调用finish();
之前添加check isResumed()答案 7 :(得分: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);
}
}