获取用户的答案(系统对话框 - 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 代码来更新列表。
我是 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 代码来更新列表。