为什么再次提出同样的问题
这个问题在SO上被问了大约100次。 我再次询问,因为所有答案都说this is not possible
,但市场中至少有一个应用程序正在执行NQ Mobile Security
。在类似问题上我开始获得100分的赏金,但没有得到足够的重视。如果社区不接受我将删除该问题。
应用正在做什么
当用户尝试卸载时,该应用会显示一项活动
并在卸载之前进行一些处理
我的问题是什么
如果在之前已在其设备上安装该应用的用户卸载应用程序之前,如何启动Activity
或IntentService
?
答案 0 :(得分:2)
正如@CommonsWare所说The techniques used by NQ Mobile Security have been reported to the Android Security group, and they are working on a fix to stop this behavior from occurring.
已向Google提出功能请求,希望他们可以听取它。
答案 1 :(得分:1)
我认为您可以跟踪logcat,其中所有活动,事件,意图都已注册,并在发送Intent时发现卸载此应用程序。
然后你可能会执行一个动作,即启动一个活动,但我不确定这一步。
希望这有帮助!
答案 2 :(得分:1)
我不知道在NQ Mobile Security application
,
但在一般情况下,我发现它不可能(或者可能,但我找不到方法),
由于,
当您在自己的应用中注册BroadcastReceiver
android.intent.action.PACKAGE_REMOVED
以及卸载应用时,已卸载注册的BroadcastReceiver
,然后卸载应用,因此自己的卸载事件已赢得不会被BroadcastReceiver
收到。
答案 3 :(得分:-1)
我知道这已经过时但我想提供这个答案。 聆听自己的卸载非常简单。您只需要使用您执行的二进制文件并在后台运行(使用nohup命令)。
这个二进制文件可以监听PACKAGE_REMOVED广播,也可以定期检查文件是否仍然存在于/ data / app /中(这些文件是世界可读的,目录列表已禁用,但你知道自己的包名:)) 如果第二种解决方案可以在不耗尽电池的情况下完成,我不知道。