获取用户的答案(系统对话框 - Android)

Getting user's answer (System dialog - Android)

我是 Android 的新手,我正在创建一个启动器。我想要删除(卸载)应用程序,所以我有一个列表,我调用系统来卸载它。

我如何知道用户是否在系统对话框中按下了 "Cancel" 或 "Ok"? (我知道如果我按 "Ok" 系统将卸载该应用程序,或者如果我按 "Cancel" 则不会卸载该应用程序,我只需要知道如何获得答案以删除或不删除我列表中的应用程序 [ArrayList] ).

如果你不知道,我该如何在不知道用户是否要卸载的情况下从列表中删除应用程序?

public void uninstall (int position){
    Uri package1 = Uri.parse("package:"+apps_block.get(position).name.toString());
    Intent uninstall = new Intent(Intent.ACTION_DELETE, package1);
    startActivity(uninstall);
    AppDetail toRemove = adapter_block.getItem(position);
    adapter_block.remove(toRemove);
}

使用此代码,即使我按 "Cancel",该应用也始终会从我的列表中删除。

您将在 startActivity() 之后立即从列表中删除该项目。到那时,用户甚至还没有看过对话框。

您可以侦听 the ACTION_PACKAGE_REMOVED system broadcast,确认它是您请求的包,然后从列表中删除该包。通过 registerReceiver() 从您的 activity 执行此操作,您可以相当快地找到并轻松访问您的 UI 代码来更新列表。