我有两个 Activity 。 1]启动画面 2]主 Activity
一旦启动屏幕任务移动到下一个 MainActivity.. 但我的要求是..如果用户按下主页按钮或 backPress 。当用户再次恢复应用程序时,它应该从启动屏幕开始,而不是从 MainActivity。
提前谢谢
我看到这里的每个答案都说要覆盖 onResume()
方法。这是一个坏主意。为什么?好吧,当您在 MainActivity
并接到电话时,您仍然可以在后台看到该 Activity ,因为它处于 onPause()
状态。当您关闭调用时,将调用 onResume()
,然后将调用 SplashActivity
。这不是良好的用户体验,也不是您想要的。
另外,onResume()
在 MainActivity
的创建过程中被调用。因此,如果您将 startActivity()
代码放在 onResume()
中而不进行任何条件检查,您将永远看不到 MainActivity
本身。 SplashActivity
将在 MainActivity
创建时立即启动。
那么,如何实现你想要的呢?
一旦你从SplashActivity
启动MainActivity
,不要finish()
SplashActivity
。让它留在后退栈中,所以当你按下后退按钮时,你会转到 SplashActivity
。
在您的 MainActivity
的 onStop()
方法中设置一个标志以注意 MainActivity
已最小化。然后在 onStart()
中检查此标志并仅在设置此标志时启动 SplashActivity
。这是为了确保应用程序已最小化并正在恢复。
MainActivity:
private boolean isMinimized = false;
@Override
protected void onStop() {
super.onStop();
isMinimized = true;
}
@Override
protected void onStart() {
super.onStart();
if(isMinimized){
startActivity(new Intent(this , SplashActivity.class));
isMinimized = false;
finish();
}
}
关于android - 如果用户从主要 Activity 中按下主页按钮或返回按钮,则每次启动启动画面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33543587/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://www.ogeek.cn/) | Powered by Discuz! X3.4 |