`
zhouxiaoli521
  • 浏览: 554194 次
  • 性别: 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通过调用C来监听自己的程序被卸载。

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

    Android中的监听应用程序如何安装和卸载

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

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

    Android程序监听自身被卸载

    Android程序监听自身被卸载后打开浏览器

    Android 监听程序的安装和卸载

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

    android卸载应用程序

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

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

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

    Android代码-AppUninstall

    监听系统卸载广播:只能监听到其他应用的卸载广播,无法监听到自己是否被卸载。 读取系统log:第三方软件卸载无法得知。 静默安装另一个程序,监听自己是否被卸载:需要root权限。 Java线程轮询,监听/data/data/{...

    android监听安装和卸载示例

    Android应用程序的安装和卸载事件,是由系统进行监听并全局广播的,支持1.5(android 3)以上,因此,如果想要监听获取应用的安装和卸载事件,只需要自定义一个BroadcastReceiver,来对系统广播进行监听和处理

    android卸载应用程序-Android代码类资源

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

    Android 监听apk安装替换卸载广播的实现代码

    首先是要获取应用的安装状态,通过广播的形式以下是和应用程序相关的Broadcast ActionACTION_PACKAGE_ADDED 一个新应用包已经安装在设备上,数据包括包名(最新安装的包程序不能接收到这个广播)ACTION_PACKAGE_...

    Android开发资料合集-World版!

    1.2、ANDROID应用程序架构 9 2、ANDROID应用程序结构 11 2.1、ACTIVITY 12 2.1.1、概述 12 2.1.2、Activity的生命周期 15 2.1.3、Activity 的创建 16 2.1.4、Activity 的跳转(含Bundle传值) 17 2.1.5.Actvity ...

    Android 开发技巧

    1.2、ANDROID应用程序架构 9 2、ANDROID应用程序结构 11 2.1、ACTIVITY 12 2.1.1、概述 12 2.1.2、Activity的生命周期 15 2.1.3、Activity 的创建 16 2.1.4、Activity 的跳转(含Bundle传值) 17 2.1.5.Actvity ...

    Android闹铃服务AlarmManager用法深入分析

    对应AlarmManage有一个AlarmManagerServie服务程 序,该服务程序才是正真提供闹铃服务的,它主要维护应用程序注册下来的各类闹铃并适时的设置即将触发的闹铃给闹铃设备(在系统中,linux实现的设备名 为”/dev/alarm...

    adb1.0.26包含fastboot.exe

    INSTALL_FAILED_CPU_ABI_INCOMPATIBLE 包含不兼容设备 CPU 应用程序二进制接口的 native code INSTALL_FAILED_MISSING_FEATURE 应用使用了设备不可用的功能 INSTALL_FAILED_CONTAINER_ERROR 1. sdcard 访问失败; 2...

    PlayAndroid:第一个涉及网络获取数据的Android应用,慢慢来,应该可以从各路大神学到很多知识

    第一个涉及网络获取数据的Android应用,慢慢来,应该可以从各路大神学到很多知识 增加了本地数据库的注册登陆功能,使用了郭神的litepal框架。 增加了一个循环的线程,一直在监听用户是否登陆,如果登陆的话进行则...

    绿色守护 greenify v 2.5.2 Beta1

    『绿色守护』帮助你甄别那些对系统全局性能和耗电量有不良影响的应用程序,并通过独特的『绿色化』技术,阻止它们消耗您的电池电量,占用您的宝贵内存。经过『绿色化』工艺处理的应用,在您没有主动启动它们的时候,...

    RSS Feed阅读器「RSS Feed Reader」-crx插件

    全局或在选定的提要上启用-支持RSS和Atom提要-查看页面何时有要订阅的RSS或Atom提要-声音通知-电子邮件通知(仅适用于PRO)-iOS和Android应用程序(仅适用于PRO)如有任何反馈,错误或问题,我们始终在收听我们的...

Global site tag (gtag.js) - Google Analytics