- 监听卸载广播,只能监听到别人卸载。自己被卸载的时候,早就收不到广播了。
- 监听log。这样听起来很靠谱,能稳定监听到,但是发送操作不靠谱。
- 监听/data/data/。当Android卸载应用的时候,会先删除这里的文件。可以轮询监听,可以优化成unix文件监听方式,,这样只用等待文件监听服务的回调。
监听/data/data/这个目录,还存在以下几个问题:
- 清除数据、插拔USB线、覆盖安装等操作引起程序误判卸载。
- 重复监听的问题。
- 用户将已在Internal SD卡安装好的应用移动到external SD卡,导致监听不正常。
- 由于inotify_add_watch(fileDescriptor, path, IN_DELETE)这个函数会监听path目录下所有文件的删除操作导致。
- 重复调用JNI的init方法
- 暂时未修复
- 监听不应该针对整个文件夹,而是某个文件。
- 重复监听的问题,都可以通过加文件锁来防止
详细方案可参考我的博文:Android监听自己是否被卸载
参考自:
https://github.com/sevenler/Uninstall_Statics
http://www.cnblogs.com/zealotrouge/p/3157126.html