Android - 活动行为?

时间:2011-08-02 09:59:46

标签: java android android-activity

我有一个小型的Android应用程序,其中TabScreen作为我的主屏幕。我有一个小问题,我的应用程序目前失去了对用户所在的最后一个Activity的关注。

这是情景:

  1. 用户启动应用程序
  2. 应用程序显示登录屏幕
  3. 用户输入登录详细信息并转到标签页
  4. 用户通过主页键离开应用程序
  5. 用户按应用程序图标返回应用程序并再次显示登录屏幕
  6. 我希望应用程序在这种情况下返回到上一个已知的显示活动。

    我现在所做的是启动登录屏幕作为Main / Launcher Actvitiy,然后输入正确的凭据时启动标签屏幕活动并完成登录活动。

    是否有启动模式或我应该用来实现此目的?

    编辑:更多信息

    Tab屏幕的启动方式如下:

    Intent intentTabActivity = new Intent(getApplicationContext(), TabScreenActivity.class);
    startActivity(intentTabActivity);
    

    通过主页按钮离开应用程序。

    我打算坚持登录状态并绕过登录但是在我创建的较小的应用程序上,应用程序会自动返回到上次显示的活动,并且每次都不会返回到初始的Launcher屏幕,我想知道为什么这不是在此应用程序中的行为相同。

    另外,根据我的其他问题HERE,调试和签名版本的行为似乎有所不同。

    这一直在真实设备上进行过测试。

3 个答案:

答案 0 :(得分:3)

这是正确的行为。基本上发生的事情是,一旦活动进入后台,它就受Android DVM的支配。如果DVM认为它需要空间,它将基本上继续杀死您的应用程序。因此,一旦您尝试从图标启动应用程序,它实际上会从头开始重新启动它。

但是要解决您的问题,您应该在登录屏幕上有一个“自动登录”或“记住密码”的复选框,当用户每次打开应用时都会检查它,它会自动登录并进入下一个屏幕。您需要使用某种持久存储来实现此行为。

答案 1 :(得分:1)

可能是因为你正在使用你的onPause(),所以你的标签在传递标签时会做一些动作。 因此,当按下主页键时,最终会调用onPause(),这可能会导致您遇到此问题。也许你必须检查这个案例的onPause()。

答案 2 :(得分:1)

在主页按钮上只调用onStop,你在onStop上完成活动吗?如果不是,它会保留堆栈顶部的活动。