범인을 찾았습니다.
*installintent.setflags (intent.flag_activity_new_task);*
시스템이 기존의 활동 인스턴스를 다시 생명으로 가져 오는 경우가 있습니다. 새로운 작업 스택. 따라서 시스템은 새로운 작업을 시작하기 전에 ActivityForresult를 취소합니다.
고맙습니다
문제
내 앱이 APK를 설치하려고합니다.
Intent installIntent = new Intent(Intent.ACTION_INSTALL_PACKAGE);
installIntent.setData(Uri.fromFile(new File(pathToApk)));
installIntent.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true);
installIntent.putExtra(Intent.EXTRA_RETURN_RESULT, true);
installIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
((Activity)context).startActivityForResult(installIntent, Constants.APP_INSTALL_REQUEST);
내 활동에서
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case Constants.APP_INSTALL_REQUEST:
if(resultCode == RESULT_OK){
Log.e(TAG, "Package Installation Success");
}else if(resultCode == RESULT_FIRST_USER){
Log.e(TAG, "Package Installation Cancelled by USER");
}else{
Log.e(TAG, "Something went wrong - INSTALLATION FAILED");
}
내 startActivityResult가 발사되면 내 활동은 즉시 결과 코드 0을 가져옵니다.이 코드 0이 result_cancelled에 해당하는 동안 시스템 설치 UI가 여전히 사용자 권한을 기다리고 있습니다.
설치가 성공했는지 여부를 실제로 알 수있는 내 활동은 UI 업데이트를 기반으로합니다.
도움을 주셔서 감사합니다.
해결책
범인을 찾았습니다.
*installintent.setflags (intent.flag_activity_new_task);*
시스템이 기존의 활동 인스턴스를 다시 생명으로 가져 오는 경우가 있습니다. 새로운 작업 스택. 따라서 시스템은 새로운 작업을 시작하기 전에 ActivityForresult를 취소합니다.
고맙습니다