Получение ответа пользователя (Системный диалог - Android)
Я новичок на Android и создаю лаунчер. Я хочу, чтобы приложения были удалены (удалены), поэтому у меня есть список, и я вызываю систему для его удаления.
Как я могу узнать, нажал ли пользователь "Отмена" или "Ок" в системном диалоге? (Я знаю, что система отключит приложение, если я нажму "Ok" или не нажму, если я нажму "Отмена", мне просто нужно знать, как получить ответ, удалить приложение из моего списка или нет [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);
}
С этим кодом приложение всегда удаляется из моего списка, даже если я нажимаю "Отмена".
1 ответ
Вы удаляете элемент из списка сразу после startActivity()
, Пользователь еще даже не видел диалоговое окно к этому моменту.
Вы могли бы слушать за ACTION_PACKAGE_REMOVED
Система широковещательной рассылки, подтвердите, что это было для вашего запрошенного пакета, и удалите пакет из списка в тот момент. Делая это из вашей деятельности через registerReceiver()
Вы можете довольно быстро это выяснить и легко получить доступ к своему коду пользовательского интерфейса для обновления списка.