Экран обновления неожиданно закрыт - PullRequest
0 голосов
/ 05 июня 2018

Я обновляю свое приложение программно на 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.

Когда я пытаюсь щелкнуть значок приложения, появляется сообщение «Приложение не установлено».Я полагаю, что через несколько секунд после завершения процесса обновления в фоновом режиме приложение может быть открыто и работает, как и ожидалось.

Как предотвратить это неожиданное закрытие диалога обновления?Я хочу показать прогресс пользователю.

1 Ответ

0 голосов
/ 06 июня 2018

Изменение флага разрешило его

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
...