我在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桌面。
当我尝试点击应用图标时,它会返回我&#34; App未安装&#34;。在我假设的后台完成更新过程几秒钟后,app可以打开并按预期工作。
如何防止这种意外关闭更新对话框?我想向用户显示进度。
答案 0 :(得分:0)
标志更改解决了它
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);