【问题标题】:android application always opens default home page when application comes in foreground当应用程序进入前台时,android应用程序总是打开默认主页
【发布时间】:2011-06-19 04:41:46
【问题描述】:

我的应用程序中有 15-20 个活动。我希望当用户单击主页上我的应用程序的图标并且应用程序在后台运行时,用户应该始终看到默认屏幕。但是,根据默认的 android 行为,用户会看到应用程序进入后台之前出现的最后一个屏幕。 我也不想失去背部功能。有什么方法可以知道用户是否在同一个应用程序中导航,或者用户是否切换到其他应用程序并返回到我的应用程序。 我知道我们可以将 onpause() 等用于此类事情,但我有 15 个活动,我想在一个地方进行此更改并且不想失去后退按钮功能?

【问题讨论】:

标签: android background


【解决方案1】:

好吧,在每个活动的 onPause() 中,如果它是当前正在运行的活动,您可以写入共享首选项文件(如果您使用一个来保持多个向后堆栈,则可能保存您的向后堆栈),然后在每个 onResume您可以将意图切换到主要活动,然后可以加载共享数据(单件,或者如果您有堆栈,则填充 ArrayDeque。ArrayDeque 而不是 Stack,因为不推荐使用堆栈,因为它基于已弃用的向量。)

这可能有点乱,但可能还不错(我必须尝试一下才能真正知道)。

祝你好运,希望对你有所帮助。如果没有,我希望其他人可以提供帮助。

【讨论】:

  • 感谢您的回复... onpause 覆盖存在问题,如果我覆盖 onpause,如果用户在应用程序内部导航或用户按下主页按钮,则会调用此方法。我希望当用户单击主屏幕并返回应用程序时,他应该看到默认条款和条件页面。这是法律要求。当用户在应用程序内按下后退按钮时,他应该得到正常行为。目前我必须重写 onpause、on resume 和 onbackpressed 才能完成这件事。有没有更简单的方法
  • 您是否需要用户每次都查看条款和条件?可能会弹出最终用户许可协议或类似项目,要求用户在被允许使用应用程序之前接受。 bees4honey.com/blog/tutorial/adding-eula-to-android-app 要让它每次都出现,只需将测试代码留在其中永远不允许保存接受。那么你可以让用户回到他们之前的页面(我相信它现在发生了?)
  • 。非常感谢您的及时回复。我找到了另一种方法。我在上面已经描述过了。如果您认为使用 onUserLeaveHint() 方法并完成应用程序有任何危害,请告诉我,以便用户每次点击主页上的 myapp 图标时都能看到条款和条件。我不担心重新启动应用程序的性能,因为a)我在启动时没有做很多事情b)这个合法的事情对客户来说更重要。
【解决方案2】:

您可以通过添加一个布尔值并在应用程序进入后台时设置为 true 来解决这个问题。您可以为此使用 onPause()。

之后,您必须使用该布尔值和 onResume() 检查每个活动。

我知道这不是最漂亮的方式,但我认为这可以解决问题。

【讨论】:

  • 感谢您的回复...但是,我希望当用户单击主页按钮并返回我的应用程序时,他应该每次都看到条款和条件页面。暂停和 onresume 可以做到这一点,但随后我失去了应用程序的功能。目前,我在恢复和后按时压倒了 onpause。如果有更简单的方法来实现这一点,我会非常高兴。
猜你喜欢
  • 1970-01-01
  • 2014-08-28
  • 2011-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-07
  • 1970-01-01
相关资源
最近更新 更多