Получение ответа пользователя (Системный диалог - 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()Вы можете довольно быстро это выяснить и легко получить доступ к своему коду пользовательского интерфейса для обновления списка.

Другие вопросы по тегам