最终我并没有实现这个功能,我本来希望能够实现在用户卸载程序之后,打开用户反馈网页,我暂时用www.baidu.com代替反馈网页。
大体的想法是使用ndk开发,在c代码中fork一个子进程,在子进程中监听data/data/packageName文件是否消失来判断app是否被卸载,由于子进程不会立刻被杀死,这样就能实现想要的功能了,但是不知道为什么我一卸载app的瞬间,子进程也是立刻被杀死了,打开网页的代码根本不会被执行,听说5.0以上的系统才会有fork出的子进程也会被回收的现象,但是我的手机明明是4.4的,但是没关系,我学到了很多知识,
1、 比如c语言里的fork函数,它会返回多个值,0表示进入子进程>0表示还在父线程,<0表示创建子进程失败
2、c代码
execlp("am", "am", "start", "--user", "0", "-a", "android.intent.action.VIEW", "-d", "http://www.baidu.com", (char *) NULL);
是可以直接使得手机打开百度页面的。
虽然失败,但是还是学到了东西。
相关推荐
在Android系统中,"自监听卸载App"是一种高级的编程技术,允许应用程序检测到自身被用户或系统卸载的情况。这种技术对于某些特定的应用场景非常有用,例如数据备份、清理资源或者执行卸载后的清理任务。下面我们将...
Android 监听自身卸载,弹出用户反馈调查是一个非常实用的功能,特别是在当前的移动应用市场中。这个功能可以让开发者在用户卸载应用时,弹出一个用户反馈调查的网页,以便收集用户的反馈信息,并且可以帮助开发者...
在安卓(Android)开发中,有时开发者需要监听应用自身的卸载事件,以便在用户卸载应用时执行一些清理工作或发送最后的数据。本项目提供的"安卓Android源码——监听自身卸载.rar"就是一个实例工程,它展示了如何实现...
android.intent.action.PACKAGE_REMOVED和android.intent.action.PACKAGE_ADDED 可以监听别的应用被安装卸载,但不能监听自己被卸载啊。 监听自己被卸载通过前辈们探索发现,只能通过监听系统卸载log如:act=...
首先,我们需要了解在Android中,监听APP卸载通常涉及到广播接收器(BroadcastReceiver)。Android系统在卸载一个应用时会发送一个名为`ACTION_PACKAGE_REMOVED`的系统广播。通过注册一个能捕获这个广播的接收器,...
这样即使应用没有运行,ContentProvider依然存活,可以监听到卸载事件。 3. **服务(Service)**:创建一个常驻服务,通过心跳机制定时检测应用是否还在运行。如果心跳检测失败,可能是应用被卸载了。 4. **使用...
在监听卸载的场景中,JNI可能并不直接参与,但如果在卸载过程中需要执行一些特定的原生操作,例如清理原生库或数据,那么JNI就派上用场了。不过,对于监听卸载事件本身,通常只需要Java层的BroadcastReceiver即可。 ...
在`IntentFilter`中添加这个动作,可以监听到与指定包名相关的卸载事件。 4. **libcurl**: libcurl是一个开源的库,用于在各种编程语言中处理URL转移,包括HTTP、HTTPS、FTP等。在这个示例中,当应用被卸载后,它...
在Android系统中,由于其基于Linux内核,因此理论上可以利用`Inotify`来监听应用的卸载事件。然而,Android系统对第三方应用的权限控制较为严格,直接使用`Inotify`来监听自身卸载并不直接可行。这篇技术博客中可能...
总之,监听程序卸载需要结合Java和C/C++代码,通过BroadcastReceiver在Java层捕获卸载事件,然后在本地层利用NDK确保即使在卸载过程中也能执行必要的操作。记得在AndroidManifest.xml中正确配置BroadcastReceiver,...
【Android-监听自身应用卸载】是Android开发中一个特殊的需求,它涉及到系统广播的注册与接收、服务的实现以及第三方库libcurl的使用。在这个实例工程中,开发者旨在实现当应用被卸载时,自动触发一个网络请求,或者...
Android系统在卸载应用时会发送一个ACTION_PACKAGE_REMOVED广播,我们可以通过注册一个自定义的BroadcastReceiver监听这个广播,当接收到这个广播时执行预设的任务。 接下来,我们关注使用libcurl进行三方请求的...
本资源"Android应用源码之监听自身被卸载.zip"提供了一个示例代码,帮助我们深入理解这一过程。 首先,Android系统并未直接提供监听应用卸载的API,但我们可以利用广播接收器(BroadcastReceiver)来间接实现这一...
在Android系统中,应用监听自身卸载是一种非标准但实用的技术,主要涉及到系统服务、广播接收器和进程管理。以下是对这一主题的详细说明: 首先,Android应用的生命周期是由系统控制的,通常情况下,用户卸载应用时...
5. **卸载监听的局限性**:由于Android系统的限制,即使监听到卸载事件,也无法阻止卸载过程。此外,如果用户选择“强制停止”应用后再卸载,那么BroadcastReceiver可能不会接收到ACTION_PACKAGE_REMOVED广播。 6. ...
在Android应用开发中,"监听自身被卸载"是一个特殊的需求,...总的来说,监听自身被卸载在技术上是可行的,但应谨慎使用,避免侵犯用户隐私或引起不必要的干扰。在实际应用中,确保遵循Android最佳实践和用户隐私政策。
接下来,为了监听应用的卸载事件,我们可以在AndroidManifest.xml中注册一个广播接收器,该接收器监听ACTION_PACKAGE_REMOVED动作。当用户卸载应用时,系统会发出这个广播。在广播接收器的onReceive方法中,我们可以...
要监听应用被卸载,我们需要创建一个BroadcastReceiver,该receiver会在接收到ACTION_PACKAGE_REMOVED广播时执行特定操作。以下是一个简单的BroadcastReceiver示例: ```java public class UninstallReceiver ...
在Android开发中,有时我们需要对应用的卸载行为进行监听,以便在用户卸载应用时执行某些清理工作或发送最后的数据。"android卸载监听"是Android开发中的一个技术点,它涉及到Android系统的生命周期管理和自定义...
注册一个这样的广播接收器,就可以在接收到卸载广播时执行清理或通知操作。 接下来是libcurl的使用。libcurl提供了丰富的功能,包括HTTP、HTTPS、FTP等多种协议的支持,可以进行POST、PUT、GET等请求,还可以处理...