android - 可以在用户级别跟踪 android 应用程序的卸载吗?
问题描述
我卸载了一个安卓移动应用程序,并立即收到一条短信,上面写着“很抱歉看到你走了”。他们如何跟踪我卸载了该应用程序?
解决方案
我们可以在我们的应用程序中实现一个 BroadcastReceiver 来监听动作"android.intent.action.QUERY_PACKAGE_RESTART"
并在 onReceive() 方法中匹配我们的包名。如果接收到用于选择所需应用程序包的广播,那么我们将启动一个后台线程,该线程将使用 ActivityManager 继续监视前台运行的活动。
一旦我们发现前台活动是"com.android.packageinstaller.UninstallerActivity"
,就会确认用户想要卸载我们的应用程序。此时,我们将执行卸载前要执行的所需任务(显示对话框,或启动另一个与卸载窗口重叠的活动等)。执行我们的任务后,我们将允许用户继续确认卸载过程。
当用户单击“管理应用设置”下的“卸载”按钮时,我们将执行我们的预卸载任务,然后提示用户进入“确认”窗口,用户可以在该窗口中确认卸载或取消操作。
推荐阅读
- apache-kafka - 在 Windows 上运行 Kafka 服务器时出错
- c# - 尝试将 .tif 文件转换为 jpg 时出错:GDI+ 中发生一般错误
- sql - SQL - 从多个表中获取关联数据
- vba - 如何删除输出文件中标题名称中的空格
- android - 如何从字符串“October”和整数值“2018”获取完整日期格式为完整日期格式?
- python - 许多小部件分别堆叠 QTableWidgets 的性能问题
- javascript - 从 JS 中的子网生成随机 IP 地址
- python - 完全模仿 tkinter 文本小部件中的标准输出,以支持 Python 打印函数中的 end 参数
- spring - 在运行时停止 Spring @Controller
- robotframework - 如何在 Robot Framework 中将 Dictionary 转换为 String 或 StringBuffer?