我的目标:在onStop
期间强制用户互动。
示例:当用户按下intent
按钮或调用Activity
时,启动home
并启动onStop
。
我知道这不是一个好习惯,但如果用户尝试使用home
按钮离开应用,我们需要强制用户互动。
如果您对如何实现这一目标有任何其他想法,请告诉我。
由于
答案 0 :(得分:0)
您无法可靠地执行此操作(因为它是类似恶意软件的行为)。用户始终可以从最近的应用菜单中删除您的应用。
你可以让你的应用成为一个发射器,如果这是你的用户会忍受的东西,然后它会在每次回家时启动但是没有办法防止有人离开你的应用程序(可靠)。可能存在大量黑客攻击,包括Service
启动am start
(可能需要也可能不需要root),但同样可以完全避开。
如果您的用户对您有足够的信任(并且听起来没有他们的选择),您可以申请SYSTEM_ALERT_DIALOG
权限。这允许您将窗口放在其他应用程序之上。所以,谜题的部分成为以下 -
onStart
/ onStop
方法时通知服务的活动。调用onStop
时,您启动计时器(例如,在处理程序上使用postDelayed
)并在调用onStart
时取消它。onStop
。然后,您可以显示一个带有相应标志的窗口(这部分有点低级,因为您必须直接与WindowManager
对话。Dialog
的源代码就是一个很好的例子)并且它会显示在用户当前正在查看的任何应用程序之上。或者,根据对话框的重要性,考虑将其显示为一个通知,一旦按下该通知,就会启动对话框的活动。当然,然后你冒着用户解雇通知的风险(虽然你可以继续这样做以避免这种情况)。