我有两个 Activity 。
1]启动画面
2]主 Activity
一旦启动屏幕任务移动到下一个 MainActivity..
但我的要求是..如果用户按下主页按钮或 backPress 。当用户再次恢复应用程序时,它应该从启动屏幕开始,而不是从 MainActivity。
提前谢谢
Best Answer-推荐答案 strong>
我看到这里的每个答案都说要覆盖 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/
|