在onStop期间需要用户交互

时间:2013-07-30 21:24:41

标签: android

我的目标:onStop期间强制用户互动。

示例:当用户按下intent按钮或调用Activity时,启动home并启动onStop

我知道这不是一个好习惯,但如果用户尝试使用home按钮离开应用,我们需要强制用户互动。

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

由于

1 个答案:

答案 0 :(得分:0)

您无法可靠地执行此操作(因为它是类似恶意软件的行为)。用户始终可以从最近的应用菜单中删除您的应用。

你可以让你的应用成为一个发射器,如果这是你的用户会忍受的东西,然后它会在每次回家时启动但是没有办法防止有人离开你的应用程序(可靠)。可能存在大量黑客攻击,包括Service启动am start(可能需要也可能不需要root),但同样可以完全避开。

如果您的用户对您有足够的信任(并且听起来没有他们的选择),您可以申请SYSTEM_ALERT_DIALOG权限。这允许您将窗口放在其他应用程序之上。所以,谜题的部分成为以下 -

  1. 跟踪用户是否在应用中的服务
  2. 调用onStart / onStop方法时通知服务的活动。调用onStop时,您启动计时器(例如,在处理程序上使用postDelayed)并在调用onStart时取消它。
  3. 如果计时器触发,则表示您没有留在应用中onStop。然后,您可以显示一个带有相应标志的窗口(这部分有点低级,因为您必须直接与WindowManager对话。Dialog的源代码就是一个很好的例子)并且它会显示在用户当前正在查看的任何应用程序之上。
  4. 或者,根据对话框的重要性,考虑将其显示为一个通知,一旦按下该通知,就会启动对话框的活动。当然,然后你冒着用户解雇通知的风险(虽然你可以继续这样做以避免这种情况)。