卸载Android应用程序时,经常会弹出网页,做些用户数据的调查统计。Android是可以获取到其它应用被卸载掉这个事件,但是并不能获取自身被卸载这个事件。从纯粹的java层是没法实现的,本文介绍一种方法来实现它。

原理

简单来说就是创建后台进程,监控文件夹的删除事件。比如说app的包名是com.myname.myapp,后台进程监控的文件夹就是/data/data/com.myname.myapp。如何监控文件夹被删除这一事件,主要用的是inotify系列函数,这在jni中的进程通讯的另一种实现方式 有介绍。

注意点

后台进程只需要一个就行了,不需要多个的,之前我注意到企鹅的一款产品做这个功能时,后台启动了多个进程。如何实现?可以参考Android JNI层确保只有一个进程的一个实现,提供一种思路。

几种重点测试情形:a. 清理app的数据  b.升级app   c. 强制关闭app,然后重启app。

代码

代码实现以及demo都有了,接口也已经封装好,判断后台进程是否唯一,有点过于简单,欢迎完善代码。

代码使用也很简单。

public class DemoApp extends Application{

@Override

public void onCreate() {

Log.i("UninstallDemoApp", "onCreate");

WatchDog.init2("com.bananachip.uninstall", "libwatchDog.so", WatchDog.getUserSerial(this), "http://www.baidu.com");

super.onCreate();

}

}

程序员都看得懂,不做解释。

我这个实现中,判断进程是否存在做的比较简单,仅仅是查询进程名libwatchDog.so。使用时自己要改名。

如何编译?

jni部分不是通过eclipse编译的。

cd jni

ndk-build

rename.bat

使用eclipse运行demo

其它

1.  本文参考了其它博客,不过博客实现有不少问题。

2. 不是所有的android机型删掉app之后都能弹出网页,比如小米,红米,这些机型会对后台进程进行额外的管理。

------------欢迎评头品足

------------by jacksonke

原文:http://my.oschina.net/u/1445604/blog/496907

android卸载弹出窗口,卸载Android app弹出浏览器的一种实现相关推荐

  1. JS怎么实现首次打开弹出窗口,以后不弹出

    我们自己做网站时,有时希望第一次打开某个页面时,弹出一个窗口,以后再打开页面时,就不显示这个弹窗了.实现这样的效果就需要使用JS,通过JS可以实现首次打开弹出窗口,以后不弹出. 实现原理 借用loca ...

  2. vb html ie弹出窗口,VB6 统制IE弹出模式窗口

    VB6 控制IE弹出模式窗口 最近一个小项目,开发一个插件,需要对一个第三方系统的网页内容进行操作.操作的内容还比较复杂.自然选择用BHO做. 做到一半卡住了,原因在于这个网站有一个showmodal ...

  3. html点击按钮弹出窗口_电脑桌面总是弹出广告怎么办?教你2种方法,轻松解决...

    平常我们在使用电脑时,总会出现很多的弹窗广告,点关闭按钮直接就进入了广告,每次都要浪费时间来关闭广告页面,非常的烦人. 不过最近小编发现了关闭电脑广告弹窗的方法,我们一起来看一看吧! 一.启用弹出窗口 ...

  4. python 弹出窗口闪烁,Python PyQt5中弹出子窗口解决子窗口一闪而过的问题

    方式一:槽函数中创建子窗口对象,赋值到普通变量 在主窗口添加按钮,并把按钮信号关联槽,在槽函数中创建子窗口对象赋值到普通变量,并调用其 show 方法. from PyQt5.QtWidgets im ...

  5. 计算机内存不能为read,电脑弹出窗口显示该内存不能为read的两种解决方法

    相信大多数朋友都遇到过电脑弹出内存不能为read的提示,这个问题不解决的话,在使用的时候也会非常麻烦.有时可能只是偶尔出现,这是正常的,但过于频繁的出现,就一定要去查查深层次的原因了.内存是主板上的存 ...

  6. c语言怎样响应右键弹出窗口,MFC创建右键弹出菜单的方法

    本文实例讲述了MFC创建右键弹出菜单的方法.分享给大家供大家参考.具体实现方法如下: ①.添加一个菜单资源,ID为IDM_RIGHTMENU.因为在显示右键菜单时顶级菜单是不显示的,所以可以给它设置任 ...

  7. java点击关闭弹出窗口_java – JPopupMenu在子弹出窗口打开时关闭

    不可能直接,它很难覆盖已知的 bug,在其他手中Swing不允许同时有两个lightwieght弹出组件 import javax.swing.*; import java.awt.event.*; ...

  8. 自动弹出窗口html代码,强制弹出广告页面+自动最小化代码

    输入您的搜索字词 提交搜索表单 这个弹窗代码,效果很好,不过有点复杂!请细看! 这里涉及三个页面: 弹窗页:1.htm  放置弹窗代码的页面 中间页:2.htm  中间过度页面 弹出页:3.htm   ...

  9. java web弹出窗口大全_web页面弹出窗口代码大全

    ") OpenWindow.document.write(" Hello! ") OpenWindow.document.write("New window o ...

最新文章

  1. Elasticsearch Java Client 版本区别及起步(5.X 和6.X)
  2. JVM调优总结(十一)JVM 几个重要的参数
  3. linux读写usb host,LINUX下USB1.1设备学习小记(3)_host与device
  4. git ssh创建分支_【ssh简单版git-server 1】自建git-server
  5. Linux2.6信号管理
  6. java微信刷卡支付demo_微信刷卡支付例子
  7. codeM美团编程大赛初赛B轮E题
  8. java创建包顺序_Java中包含继承关系时对象的创建与销毁顺序详解(附源码)
  9. 鼎信诺显示连接服务器失败,鼎信诺审计软件2013-2014年度常见问题解答.docx
  10. 我的2012北京LAMP兄弟连
  11. 再见所有的翻译工具!我使用了有道智云+Python开发一个批量文档翻译工具,老大对我赞不绝口
  12. win7 IE11下,无法通过Windows更新为其他微软产品获取更新
  13. 51.la申请免费统计代码
  14. Reflection probes
  15. 杂谈 跟编程无关的事情11
  16. Vant上传多个图片或视频,更改视频预览图
  17. 全球时间与北京时间、UTC时间关系表
  18. Java程序员修炼之道 人民邮电出版社 吴海星译
  19. C语言--实现汉诺塔【图文讲解,附代码】
  20. 使用WPS解决英文不占满一行

热门文章

  1. AD19实时高亮显示网络,当鼠标悬停在网络上时能自动高亮
  2. 无需插件利用Chrome将网页储存为mht文件
  3. 阶段1 语言基础+高级_1-2 -面向对象和封装_1面向对象思想的概述
  4. 苹果电脑获取Android Studio的发布版SHA1和开发版SHA1
  5. struts2 javaweb 过滤器、监听器 拦截器 原理
  6. 中国大学MOOC-数据结构基础习题集、08-1、Talent and Virtue
  7. C#中使用GDI+实现复杂打印
  8. %set rsh=server.CreateObject(adodb.recordset)%
  9. RFID--Radio frequency Identification
  10. [转载] PyTorch简介