我有一个小型的Android应用程序,其中TabScreen作为我的主屏幕。我有一个小问题,我的应用程序目前失去了对用户所在的最后一个Activity的关注。
这是情景:
我希望应用程序在这种情况下返回到上一个已知的显示活动。
我现在所做的是启动登录屏幕作为Main / Launcher Actvitiy,然后输入正确的凭据时启动标签屏幕活动并完成登录活动。
是否有启动模式或我应该用来实现此目的?
编辑:更多信息
Tab屏幕的启动方式如下:
Intent intentTabActivity = new Intent(getApplicationContext(), TabScreenActivity.class);
startActivity(intentTabActivity);
通过主页按钮离开应用程序。
我打算坚持登录状态并绕过登录但是在我创建的较小的应用程序上,应用程序会自动返回到上次显示的活动,并且每次都不会返回到初始的Launcher屏幕,我想知道为什么这不是在此应用程序中的行为相同。
另外,根据我的其他问题HERE,调试和签名版本的行为似乎有所不同。
这一直在真实设备上进行过测试。
答案 0 :(得分:3)
这是正确的行为。基本上发生的事情是,一旦活动进入后台,它就受Android DVM的支配。如果DVM认为它需要空间,它将基本上继续杀死您的应用程序。因此,一旦您尝试从图标启动应用程序,它实际上会从头开始重新启动它。
但是要解决您的问题,您应该在登录屏幕上有一个“自动登录”或“记住密码”的复选框,当用户每次打开应用时都会检查它,它会自动登录并进入下一个屏幕。您需要使用某种持久存储来实现此行为。
答案 1 :(得分:1)
可能是因为你正在使用你的onPause(),所以你的标签在传递标签时会做一些动作。 因此,当按下主页键时,最终会调用onPause(),这可能会导致您遇到此问题。也许你必须检查这个案例的onPause()。
答案 2 :(得分:1)
在主页按钮上只调用onStop,你在onStop上完成活动吗?如果不是,它会保留堆栈顶部的活动。