Я обновляю свое приложение программно на Android 5.1, SDK 22.
Вот мой манифест
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<application
android:name=".AppContext"
android:allowBackup="false"
android:icon="@drawable/logo_small"
android:label="@string/app_name"
android:supportsRtl="false"
android:theme="@style/AppTheme"
tools:ignore="GoogleAppIndexingWarning">
<activity
android:name=".ui.MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name=".KioskService" android:exported="false"/>
<service
android:name="com.amazonaws.mobileconnectors.s3.transferutility.TransferService"
android:enabled="true" />
<service android:name="org.eclipse.paho.android.service.MqttService" />
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/paths"/>
</provider>
<receiver android:name=".BootReceiver">
<intent-filter >
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
<receiver
android:name=".content.UpdateAlarmReceiver"
android:exported="false" >
</receiver>
</application>
Вот как я запускаю обновление
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
Это приносит мне диалог обновления системы.При установке нажмите, чтобы начать обновление, индикатор выполнения начинает двигаться, но затем диалог автоматически закрывается, как законченное действие, возвращая меня на рабочий стол Android.
Когда я пытаюсь щелкнуть значок приложения, появляется сообщение «Приложение не установлено».Я полагаю, что через несколько секунд после завершения процесса обновления в фоновом режиме приложение может быть открыто и работает, как и ожидалось.
Как предотвратить это неожиданное закрытие диалога обновления?Я хочу показать прогресс пользователю.