0

我的目标:onStop.

示例:当用户按下按钮或被调用时启动intent并启动。ActivityhomeonStop

我知道这不是一个好习惯,但是如果用户试图通过home按钮离开应用程序,我们需要强制用户交互。

如果您对如何实现此目标有任何其他想法,请告诉我。

谢谢

4

1 回答 1

0

你不能可靠地做到这一点(因为它是类似恶意软件的行为)。用户将始终能够从最近的应用程序菜单中终止您的应用程序。

你可以让你的应用成为一个启动器,如果这是你的用户会忍受的东西,那么每次他们回家时它都会启动,但没有办法阻止某人离开你的应用(可靠地)。很多黑客攻击都是可能的,包括Services 启动am start(可能需要也可能不需要 root),但同样,完全可以绕过。

如果您的用户足够信任您(并且听上去他们别无选择),您可以请求SYSTEM_ALERT_DIALOG许可。这允许您将窗口置于其他应用程序之上。所以,拼图的碎片变成了以下 -

  1. 一个跟踪用户是否在应用中的服务
  2. onStart在调用/onStop方法时通知服务的活动。当 anonStop被调用时,您启动一​​个计时器(例如通过在处理程序上使用)并在 an被调用postDelayed时取消它。onStart
  3. 如果计时器触发,则意味着您onStop无需停留在应用程序中即可。然后,您可以显示一个带有适当标志的窗口(这部分有点低级,因为您必须WindowManager直接Dialog与用户当前正在查看。

或者,根据对话框的重要性,考虑将其显示为通知,一旦按下该通知,就会启动带有对话框的活动。当然,您随后会冒着用户关闭通知的风险(尽管您可以使其持续进行以避免这种情况)。

于 2013-07-30T21:28:52.180 回答