android 判断程序可否被卸载,监听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 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值