2017-11-06 29 views
0

나는 Android에서 초보자이며 시작 프로그램을 만들고 있습니다. 내가 목록을 가지고 그것을 제거하기 위해 시스템을 호출 할 수 있도록 앱을 제거 (제거)하고 싶습니다.사용자 응답 받기 (시스템 대화 상자 - Android)

사용자가 시스템 대화 상자에서 "취소"또는 "확인"을 눌렀는지 어떻게 알 수 있습니까? ("Ok"를 누르거나 "Cancel"을 누르면 앱이 unisntall됩니다. 내 목록 [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() 바로 뒤에있는 목록에서 항목을 제거하고 있습니다. 사용자는 심지어 을 아직 보지 못했습니다. 그 시점까지는 대화가 아직 없습니다.

the ACTION_PACKAGE_REMOVED system broadcast을 수신하고 요청한 패키지인지 확인한 다음 해당 목록에서 패키지를 제거 할 수 있습니다. 귀하의 활동에서 이것을 registerReceiver()을 통해 수행함으로써, 귀하는 귀하의 UI 코드에 쉽게 접근하여 목록을 업데이트 할 수 있습니다.