监听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);
}
});
}
});
}
}

更多相关文章

  1. Android实现输入法弹出时把布局顶上去和登录按钮顶上去的解决方
  2. 《Android系统学习》第十一章:Android应用程序Activity组件分析
  3. Android安装卸载程序具体操作方法解析
  4. android软键盘挤压界面的问题解决方法
  5. Android中数据存储的5种方法
  6. android中activity全屏的方法
  7. Android更新Ui的几种方法和见解

随机推荐

  1. Android 监听返回键|您确定要退出吗
  2. 流程图控件GoJS内置GraphObject类各指数
  3. Mac端完全删除Android Studio
  4. Android 检查当前是否已经连接上 Interne
  5. android 应用程序 集合
  6. android高效读取大图片 防止OOM
  7. android 自定义折线图
  8. API 25 (Android 7.1.1 API) widget.Prog
  9. android技术选型(持续更新中...)
  10. Android NDK开发(一)环境搭建及运行示例