android应用卸载后的监听
来源:互联网 发布:发票二维码扫描软件 编辑:程序博客网 时间:2024/05/16 12:58
在我收到做这个卸载监听的操作的时候,其实我心里是拒绝的,但再拒绝也是没有用的,谁让你只是个猿猿,哈哈哈,下面我们来讲我这一次的辛酸经历:
1,我用的广播,事实证明这货一点用都没有
2,第二个,在网上找的一些资料,fock出一个C线程,因为当时我用的是6.0的机子当的测试机,一点反应都没有,后来想是不是android版本的原因,于是乎下了一个4.2的模拟器,妈蛋,网页竟然弹出来了,我也就无语了,这让我如何去爱你
3,最后一个,想到了android里面的FileObserve,文件监听者,本文就是讲如何使用FileObserve
直接上代码
public class SDCardListener extends FileObserver {private String path;private final Context mContext;private String url="http://www.baidu.com"; public SDCardListener(String parentpath, Context context) { super(parentpath); this.path= parentpath; this.mContext = context;}@Overridepublic void onEvent(int event, String path) { int action = event & FileObserver.ALL_EVENTS; switch (action) { case FileObserver.DELETE: doPost(); break; }}//应用卸载后打开一个网页的方法protected void openBrowser() { Uri uri = Uri.parse(url); Intent intent = new Intent(Intent.ACTION_VIEW, uri); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); mContext.startActivity(intent);}/** * 通过get方式提交,请求后台 * */public void doPost(){ //获得用户的信息 try { SharedPreferences sharedPreferences = mContext.getSharedPreferences("loginUser", Activity.MODE_PRIVATE); String userData = sharedPreferences.getString("loginJson", ""); Log.e("userData:", userData); if (!userData.equals("")) { JSONObject jsonObject = new JSONObject(userData); String user_id = jsonObject.getString("user_id"); String httpurl=url+"?"+"user_id="+user_id; OkHttpUtils.get() .url(httpurl) .build() .execute(new StringCallback() { @Override public void onError(Call call, Exception e, int id) { } @Override public void onResponse(String response, int id) { } }); }else { return; } }catch(Exception e){ e.printStackTrace(); }}}
public class UnInstallServer extends Service {SDCardListener[] listenners;@SuppressLint("SdCardPath")@Overridepublic void onCreate() { SDCardListener[] listenners = { new SDCardListener("/data/data/com.lilei.uninstall", this), new SDCardListener(Environment.getExternalStorageDirectory() + File.separator + "test.txt", this) }; this.listenners = listenners; for (SDCardListener listener : listenners) { listener.startWatching(); } File file = new File(Environment.getExternalStorageDirectory() + File.separator + "test.txt"); if (file.exists()) file.delete();}@Overridepublic void onDestroy() { for (SDCardListener listener : listenners) { listener.stopWatching(); }}@Overridepublic IBinder onBind(Intent intent) { return null;}}
没错,只要这两个类,就可以监听到应用被卸载
这是在网上看到的一位作者写的代码,修改了一些,不过忘了地址了,在此感谢
注意:
1.在Manifest里面开启UnInstallServer这个服务,我是在进入应用的 第一个Activity里面初始化的,这个自己看着办
2.代码里用到了OkHttp访问后台,这里贴上地址http://pan.baidu.com/s/1eRQ780y
直接导入就可以
0 0
- android应用卸载后的监听
- Android 监听应用卸载
- Android 监听应用的卸载与安装
- Android应用卸载广播监听
- Android 监听应用的安装与卸载的广播
- Android之监听应用的安装与卸载的广播
- Android APP监听自己被卸载以及卸载后的逻辑处理
- android 监听程序的监听和卸载
- android监听应用自身被卸载
- Android应用监听自己被卸载
- android 如何监听自身应用被卸载
- android监听应用自身被卸载
- android 如何监听自身应用被卸载
- Android应用如何监听自己是否被卸载及卸载反馈功能的实现
- Android应用如何监听自己是否被卸载及卸载反馈功能的实现
- Android应用如何监听自己是否被卸载及卸载反馈功能的实现
- Android应用如何监听自己是否被卸载及卸载反馈功能的实现
- Android应用如何监听自己是否被卸载及卸载反馈功能的实现
- KEIL中怎样添加STC系列单片机
- pat乙级1021
- 三子棋(京东2016实习生真题)
- 中国目前还未掌握的核心技术有哪些?
- B树,B+树,B*树
- android应用卸载后的监听
- Eigen的几何模块
- pat乙级1020
- nyoj1170
- react-native使用蚂蚁金服的antd-mobile组件库教程
- 矩阵学习笔记
- centos下安装apache+php环境
- 翻转链表
- Machine Learning with Scikit-Learn and Tensorflow 6.5 计算复杂度