`
zhouxiaoli521
  • 浏览: 562076 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

监听Android应用程序是否卸载成功

阅读更多
-------------卸载Android应用程序的方法---------------
/**
* 卸载Android应用程序
*
* @param packageName
*/
public static void uninstallApk(Context ctx, String packageName) {
Uri packageURI = Uri.parse("package:" + packageName);
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
ctx.startActivity(uninstallIntent);
}


---------------------判断是否卸载成功---------------------------


/**
* Created by IntelliJ IDEA.
* User: 罗代均
* Date: 2010-8-16
* Time: 18:11:19
*/
public class AppUninstallActivity extends Activity {

private List<ApplicationInfo> mApps;

private Handler handler = new Handler();

  private UninstallReceiver mUninstallReceiver;

private String uninstallPackage;

private GridView gvApps;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.app_uninstall);
mUninstallReceiver = new UninstallReceiver();

gvApps = (GridView) findViewById(R.id.gv_uninstall_apps);

gvApps.setOnItemClickListener(new GridView.OnItemClickListener() {
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
  ApplicationInfo app = mApps.get(position);
uninstallPackage = app.packageName;
AppUtils.uninstallApk(AppUninstallActivity.this, uninstallPackage);
}
});


//查询可卸载的应用
query();

//监听卸载广播
IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_REMOVED);
filter.addDataScheme("package");
this.registerReceiver(mUninstallReceiver, filter);
}

@Override
protected void onDestroy() {
  this.unregisterReceiver(mUninstallReceiver);
super.onDestroy();
}

private class UninstallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (uninstallPackage != null && ("package:" + uninstallPackage).equals(intent.getDataString())) {
query();
Toast.makeText(AppUninstallActivity.this, R.string.uninstall_success, Toast.LENGTH_SHORT).show();
}
}
}

private void query() {
ThreadPoolFactory.getInstance().execute(new Runnable() {
public void run() {
mApps = AppUtils.getUnintalledApp(getPackageManager());
final AppUninstallAdapter adapter = new AppUninstallAdapter(AppUninstallActivity.this, mApps);
handler.post(new Runnable() {
public void run() {
gvApps.setAdapter(adapter);
}
});
}
});
}
}
http://hi.baidu.com/luodaijun/blog/item/0887a8c37e9dfc58b219a808.html 

 

分享到:
评论

相关推荐

    Android监听应用程序安装和卸载

    ### Android监听应用程序安装和卸载 在Android开发中,有时候我们需要让自己的应用能够感知到其他应用的安装或卸载情况,比如实现应用管理器、安全软件等场景时,就需要用到这种功能。本文将详细介绍如何在Android...

    Android监听自己的程序被卸载

    通过以上步骤,我们可以实现一个基本的Android应用卸载监听机制。然而,这样的功能并非常规需求,通常只在特殊场景下使用,如持续数据同步、服务监控等。在设计和实现时,应充分考虑用户体验和系统稳定性。

    Android监听自身卸载,弹出用户反馈调查

    JNI 允许开发者在 Android 应用程序中使用 C 语言,通过 C 语言可以实现监听自身卸载的功能。 为了实现这个功能,需要了解以下几个知识点: 1. 通过 C 语言,C 进程监视:在 C 语言中,可以使用 fork() 函数创建一...

    Android 监听应用的安装和卸载

    在Android系统中,开发者可以通过创建自定义的BroadcastReceiver来监听应用程序的安装和卸载事件。BroadcastReceiver是Android四大组件之一,它能接收到系统或应用发送的广播消息,并执行相应的处理逻辑。以下将详细...

    Android监听应用程序安装和卸载.docx

    在Android开发中,有时我们需要监控应用程序的安装和卸载事件,以便执行相应的操作,如更新数据库、发送通知或执行其他自定义逻辑。以下是如何在Android中实现这一功能的详细步骤: 首先,我们需要创建一个...

    Android 监听程序的安装和卸载

    应用开发中有需要监听到程序是否安装或者卸载成功,在android系统中,安装和卸载都会发送广播,当应用安装完成后系统会发android.intent.action.PACKAGE_ADDED广播。可以通过intent.getDataString()获得所安装的包名...

    安卓Android源码——监听自身应用卸载.zip

    Android应用程序由一系列的Activity、Service、BroadcastReceiver等组件构成,它们各自有不同的生命周期。在应用卸载过程中,我们不能直接监听到卸载事件,因为一旦应用被卸载,所有的组件都将不再运行。因此,我们...

    android卸载应用程序

    android卸载已安装应用代码,提供点击打开应用功能,采用ListView显示所有已安装应用(剔除了原装应用)。 在此代码中可以学到,...调用系统卸载功能、打开已安装应用和如何判断已安装应用是否为预安装应用的方法!

    Android程序监听自身被卸载

    本篇将深入探讨如何在Android应用程序中实现监听自身被卸载的功能,并在卸载后执行特定的任务,如打开浏览器。 首先,我们需要了解Android系统的生命周期。Android应用程序由多个组件构成,如Activity、Service、...

    Android源码之监听自身被卸载.zip

    总结来说,监听Android应用被卸载主要涉及以下几个步骤: 1. 创建一个BroadcastReceiver类,重写onReceive方法来处理ACTION_PACKAGE_REMOVED广播。 2. 在AndroidManifest.xml中静态注册BroadcastReceiver,设置...

    Android卸载应用和安装应用的广播

    总结,通过创建和注册BroadcastReceiver,我们可以监听Android系统中应用的安装和卸载事件,进而执行相应的业务逻辑。这对于监控系统状态、数据分析或者提供用户体验的优化都是很有帮助的。不过,在实际开发中,需要...

    Android 监听自身被卸载Demo.zip

    在Android开发中,有时开发者可能需要监听应用被用户卸载的情况,以便在程序卸载前执行某些清理工作或发送最后的数据。本示例"Android 监听自身被卸载Demo"将详细介绍如何实现这一功能。 Android系统并没有提供直接...

    android应用卸载提示

    当用户尝试卸载一个应用程序时,系统默认情况下不会显示任何提示,而是直接执行卸载操作。然而,开发者可以通过编程方式来监控应用的卸载过程,并在卸载前向用户显示自定义的提示信息。下面我们将详细探讨如何实现这...

    Android静默 安装卸载应用程序文档

    在Android系统中,静默安装和卸载应用程序是一种无需用户交互的方式,通常用于自动化测试、设备管理或系统级服务。这种方式涉及到对系统API的深度利用,因为某些接口是隐藏的,需要通过Android系统的源码来访问。...

    Android App监听自身卸载反馈统计

    作者venshine,源码AppUninstall,方案监听系统卸载广播:只能监听到其他应用的卸载广播,无法监听到自己是否被卸载。读取系统 log:第三方软件卸载无法得知。静默安装另一个程序,监听自己是否被卸载:需要 root ...

    Android-AppUninstallWatcher,[已弃用]应用程序卸载观察程序。.zip

    本文将深入探讨“Android-AppUninstallWatcher”这个开源项目,它允许开发者监控应用程序的卸载情况。 Android-AppUninstallWatcher是一个专门为Android系统设计的工具,其主要功能是监测并记录用户卸载应用的事件...

    Android应用源码之监听自身被卸载.zip

    本压缩包提供的"Android应用源码之监听自身被卸载"资料,正是针对这一需求的实践示例。以下将详细解释这个知识点,并探讨其背后的技术实现。 首先,我们了解Android系统是如何处理应用卸载的。在Android中,用户...

    Android 监听自身被卸载-IT计算机-毕业设计.zip

    在Android系统中,应用程序通常没有权限监听自身的卸载事件,因为这是系统级别的操作。然而,开发者可以通过一些间接的方式来实现这个功能。这篇毕业设计的主题就是探讨如何在Android应用中实现监听自身被卸载的功能...

    自监听卸载App

    首先,Android应用程序通常是由一系列的组件(Activity、Service、BroadcastReceiver、ContentProvider)组成的。当用户选择卸载一个App时,系统会默认地终止这些组件并删除所有相关的文件和数据。然而,开发者可以...

Global site tag (gtag.js) - Google Analytics