当前位置:首页 » 安卓系统 » android卸载广播

android卸载广播

发布时间: 2022-10-17 04:54:18

① Android应用卸载的时候,是在什么时候进行的广播接收器的解注册

一、某些软件运行时在 任务栏列表 中是不可见的,而是以进程的方式在后台运行,常见的有来电防火墙、短信防火墙类软件、杀毒软件、加密软件等需要实时监控的软件,因此,当然 无法删 除正在运行中的 软件;二、解决方法为:1、用进程 管理器查 看进程表,如你能判断 哪个线程是该程序的进程,则可以关闭它,如无法判断则 可以先设臵 不显示系统进程;2、然后关闭所有的非 系统进程,这样就可以到程序管理里 正常卸载软件了。

② Android应用如何监听自己是否被卸载及卸载反

1,注册BroadcastReceiver,监听"android.intent.action.PACKAGE_REMOVED"系统广播

结果:NO。未写代码,直接分析,卸载的第一步就是退出当前应用的主进程,而此广播是在已经卸载完成后才发出的,此时主进程都没有了,去哪onReceive()呢?

2,若能收到"将要卸载XX包"的系统广播,在主进程被退出之前就抢先进行反馈处理就好了,可惜没有这样的系统广播,不过经过调研,倒是发现了一个办法,读取系统log,当日志中包含"android.intent.action.DELETE"和自己的包名时,意味着自己将要被卸载。

结果:NO。调试时发现此方法有两个缺陷,(1)点击设置中的卸载按钮即发出此Intent,此时用户尚未在弹框中确认卸载;(2)pm命令卸载不出发此Intent,意味着被诸如手机安全管家,豌豆荚等软件卸载时,无法提前得知卸载意图。

3,由于时间点不容易把控,所以干脆不依赖系统广播或log,考虑到卸载过程会删除"/data/data/包名"目录,我们可以用线程直接轮询这个目录是否存在,以此为依据判断自己是否被卸载。

结果:NO。同方法1,主进程退出,相应的线程必定退出,线程还没等到判断目录是否存在就已经被销毁了。

4,改用C端进程轮询"/data/data/包名"目录是否存在

结果:YES。借助Java端进程fork出来的C端进程在应用被卸载后不会被销毁。

二 方案

Android自API1就有的一个类FileObserver,这个类用于监听某个文件的变化状态,如果是目录,这个类还可以监听其子目录及子目录文件的变化状态,通过阅读FileObserver源码,发现其实现利用了Linux内核中一个重要的机制inotify,它是一个内核用于通知用户空间程序文件系统变化的机制,详情可参考http://en.wikipedia.org/wiki/Inotify,里面对inotify有比较详细的说明。

使用inotify的好处就在于不需要每1s的轮询,这样就不会无谓地消耗系统资源,使用inotify时会用read()方法阻塞进程,直到收到IN_DELETE通知,此时进程重新被唤醒,执行反馈处理流程。

三方案

阻塞结束后,通过调用exec函数发出am命令调起浏览器访问网页,在API16(Android 4.1.x)的设备上尚可正常访问网页,而API17(Android 4.2.x)的设备上连浏览器也不能调起。解决方案:增加处理分支,若API>=17,将userSerialNumber传递给C端进程,然后在am命令中带上参数--user userSerialNumber即可

③ android程序怎样监听自身程序被安装和卸载

在android系统中,安装和卸载都会发送广播,当应用安装完成后系统会发android.intent.action.PACKAGE_ADDED广播。可以通过intent.getDataString()获得所安装的包名。当卸载程序时系统发android.intent.action.PACKAGE_REMOVED广播。同样intent.getDataString()获得所卸载的包名。

④ android中注销自定义广播代码

在onStop或者onDestroy里面插入unregisterReceiver(receiver);
这个receiver就是你自己用registerBroadcastReceiver注册的自定义广播。

⑤ 如何卸载androidplayer

卸载方式:
1. 打开主菜单选择设置。
2. 在设置中选择应用。
3. 选择你需要停止的应用,例如player等。
4. 点击强行停止,同时可能会弹出一个警告,点确定即可。
5. 确定完成 就可以彻底停止这个应用运行了。
6. 点击卸载即可卸载这个应用。
建议不要卸载,Android系统设置中如果强制停止某些应用,可能会造成程序出错,闪退,死机,重启等后果,不过某些应用不给退出的情况下只能用这种方式。

⑥ 安卓开发 如何关闭广播

很牛逼的一个问题。广播不是用来关闭的!动态注册广播接收器特点是当用来注册的Activity关掉后,广播也就失效了。我们可以通过两种方式注册BroadcastReceiver,一是在Activity启动过程中通过代码动态注册,二是在AndroidManifest.xml文件中利用<receiver>标签进行静态注册。对于第一种方法,我们需要养成一个良好的习惯:在Activity进入停止或者销毁状态的时候使用unregisterReceiver方法将注册的BroadcastReceiver注销掉。如果通过第二种方法注册的BroadcastReceiver,是否需要通过代码进行注销呢?如果通过<receiver>标签来注册的BroadcastReceiver,那么该对象的实例在onReceive被调用之后就会在任意时间内被销毁。也就是说,我们并需要担心静态注册的BroadcastReceiver的销毁问题。静态注册无需担忧广播接收器是否被关闭,只要设备是开启状态,广播接收器也是打开着的。也就是说哪怕app本身未启动,该app订阅的广播在触发时也会对它起作用。

⑦ 如何卸载android.bo8

建议使用专业的程序卸载工具,专业的卸载软件在卸载后能扫描软件安装目录和注册表等,能最大程度清理程序带来的垃圾,从而实现最干净的卸载。如果你希望系统保持干净快速稳定工作,这是较好的选择。如腾讯电脑管家,不仅可以卸载程序,软件本身还带有管理系统随机启动程序工具,加快系统启动速度。

⑧ android view中注册了广播如何释放该广播

调用unregisterReceiver释放该广播,可以在view的onDetachedFromWindow的时候去处理,或者在该view被销毁的时候处理。

热点内容
qq推荐上传照片取消 发布:2025-01-25 07:36:22 浏览:138
windows2012服务器电脑重启 发布:2025-01-25 07:35:13 浏览:724
eval与php 发布:2025-01-25 07:24:28 浏览:36
服务器电脑初次上网 发布:2025-01-25 07:21:42 浏览:669
升级android6 发布:2025-01-25 07:17:59 浏览:779
多人直播源码 发布:2025-01-25 07:16:38 浏览:466
机房服务器如何安装系统 发布:2025-01-25 07:03:02 浏览:937
linux命令for循环 发布:2025-01-25 06:58:07 浏览:268
c语言链表的排序 发布:2025-01-25 06:48:17 浏览:887
查看存储空间的命令 发布:2025-01-25 06:40:06 浏览:610