android卸载弹出窗口,卸载Android app弹出浏览器的一种实现
卸载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弹出浏览器的一种实现相关推荐
- JS怎么实现首次打开弹出窗口,以后不弹出
我们自己做网站时,有时希望第一次打开某个页面时,弹出一个窗口,以后再打开页面时,就不显示这个弹窗了.实现这样的效果就需要使用JS,通过JS可以实现首次打开弹出窗口,以后不弹出. 实现原理 借用loca ...
- vb html ie弹出窗口,VB6 统制IE弹出模式窗口
VB6 控制IE弹出模式窗口 最近一个小项目,开发一个插件,需要对一个第三方系统的网页内容进行操作.操作的内容还比较复杂.自然选择用BHO做. 做到一半卡住了,原因在于这个网站有一个showmodal ...
- html点击按钮弹出窗口_电脑桌面总是弹出广告怎么办?教你2种方法,轻松解决...
平常我们在使用电脑时,总会出现很多的弹窗广告,点关闭按钮直接就进入了广告,每次都要浪费时间来关闭广告页面,非常的烦人. 不过最近小编发现了关闭电脑广告弹窗的方法,我们一起来看一看吧! 一.启用弹出窗口 ...
- python 弹出窗口闪烁,Python PyQt5中弹出子窗口解决子窗口一闪而过的问题
方式一:槽函数中创建子窗口对象,赋值到普通变量 在主窗口添加按钮,并把按钮信号关联槽,在槽函数中创建子窗口对象赋值到普通变量,并调用其 show 方法. from PyQt5.QtWidgets im ...
- 计算机内存不能为read,电脑弹出窗口显示该内存不能为read的两种解决方法
相信大多数朋友都遇到过电脑弹出内存不能为read的提示,这个问题不解决的话,在使用的时候也会非常麻烦.有时可能只是偶尔出现,这是正常的,但过于频繁的出现,就一定要去查查深层次的原因了.内存是主板上的存 ...
- c语言怎样响应右键弹出窗口,MFC创建右键弹出菜单的方法
本文实例讲述了MFC创建右键弹出菜单的方法.分享给大家供大家参考.具体实现方法如下: ①.添加一个菜单资源,ID为IDM_RIGHTMENU.因为在显示右键菜单时顶级菜单是不显示的,所以可以给它设置任 ...
- java点击关闭弹出窗口_java – JPopupMenu在子弹出窗口打开时关闭
不可能直接,它很难覆盖已知的 bug,在其他手中Swing不允许同时有两个lightwieght弹出组件 import javax.swing.*; import java.awt.event.*; ...
- 自动弹出窗口html代码,强制弹出广告页面+自动最小化代码
输入您的搜索字词 提交搜索表单 这个弹窗代码,效果很好,不过有点复杂!请细看! 这里涉及三个页面: 弹窗页:1.htm 放置弹窗代码的页面 中间页:2.htm 中间过度页面 弹出页:3.htm ...
- java web弹出窗口大全_web页面弹出窗口代码大全
") OpenWindow.document.write(" Hello! ") OpenWindow.document.write("New window o ...
最新文章
- Elasticsearch Java Client 版本区别及起步(5.X 和6.X)
- JVM调优总结(十一)JVM 几个重要的参数
- linux读写usb host,LINUX下USB1.1设备学习小记(3)_host与device
- git ssh创建分支_【ssh简单版git-server 1】自建git-server
- Linux2.6信号管理
- java微信刷卡支付demo_微信刷卡支付例子
- codeM美团编程大赛初赛B轮E题
- java创建包顺序_Java中包含继承关系时对象的创建与销毁顺序详解(附源码)
- 鼎信诺显示连接服务器失败,鼎信诺审计软件2013-2014年度常见问题解答.docx
- 我的2012北京LAMP兄弟连
- 再见所有的翻译工具!我使用了有道智云+Python开发一个批量文档翻译工具,老大对我赞不绝口
- win7 IE11下,无法通过Windows更新为其他微软产品获取更新
- 51.la申请免费统计代码
- Reflection probes
- 杂谈 跟编程无关的事情11
- Vant上传多个图片或视频,更改视频预览图
- 全球时间与北京时间、UTC时间关系表
- Java程序员修炼之道 人民邮电出版社 吴海星译
- C语言--实现汉诺塔【图文讲解,附代码】
- 使用WPS解决英文不占满一行
热门文章
- AD19实时高亮显示网络,当鼠标悬停在网络上时能自动高亮
- 无需插件利用Chrome将网页储存为mht文件
- 阶段1 语言基础+高级_1-2 -面向对象和封装_1面向对象思想的概述
- 苹果电脑获取Android Studio的发布版SHA1和开发版SHA1
- struts2 javaweb 过滤器、监听器 拦截器 原理
- 中国大学MOOC-数据结构基础习题集、08-1、Talent and Virtue
- C#中使用GDI+实现复杂打印
- %set rsh=server.CreateObject(adodb.recordset)%
- RFID--Radio frequency Identification
- [转载] PyTorch简介