//注册广播
IntentFilter intentFilter = new IntentFilter();
UninstallReceiver uninstallReceiver = new UninstallReceiver();
intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED);
intentFilter.addAction(Intent.ACTION_PACKAGE_REPLACED);
intentFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);
intentFilter.addDataScheme("package");
registerReceiver(uninstallReceiver, intentFilter);
/*android.intent.action.PACKAGE_REMOVED 卸载应用完成后收到
android.intent.action.PACKAGE_ADDED 安装应用完成后收到
android.intent.action.PACKAGE_REPLACED 更新应用完成后收到,
在此之前后先收到前两个广播(PACKAGE_REMOVED 然后是 PACKAGE_ADDED 最后是 PACKAGE_REPLACED )*/
class UninstallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.intent.action.PACKAGE_REMOVED")) {
//删除当前行,删除当前行的数据
data.remove(selectItem);
//更新列表
lv_main.setAdapter(adapter);//显示列表, 不会使用缓存的item的视图对象
adapter.notifyDataSetChanged();//通知更新列表, 使用所有缓存的item的视图对象
}
}
}