Launching updated package after finishing package installer
The updated package was not started after package update completed. That's because the package installer were started on the app task, start the app again would bring the same task. Therefore, let's finish all the package installer activities before launching the updated app. Meanwhile, FLAG_ACTIVITY_CLEAR_TOP is used to clear the Setting's activity instead of reorder the PackageInstallerActivity to front, which could remove the Settings activity during the update flow. Bug: 282618106 Test: verified locally with package update Change-Id: Ie5942d1a9745ea9e3e9f0c04fa5d0ad332f23c93
This commit is contained in:
@@ -16,6 +16,8 @@
|
||||
|
||||
package com.android.packageinstaller;
|
||||
|
||||
import static android.content.Intent.CATEGORY_LAUNCHER;
|
||||
|
||||
import static com.android.packageinstaller.PackageInstallerActivity.EXTRA_STAGED_SESSION_ID;
|
||||
|
||||
import android.app.Activity;
|
||||
@@ -45,6 +47,9 @@ public class DeleteStagedFileOnResult extends Activity {
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
setResult(resultCode, data);
|
||||
finish();
|
||||
if (data != null && data.hasCategory(CATEGORY_LAUNCHER)) {
|
||||
startActivity(data);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
package com.android.packageinstaller;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
@@ -123,11 +122,7 @@ public class InstallSuccess extends AlertActivity {
|
||||
Button launchButton = mAlert.getButton(DialogInterface.BUTTON_POSITIVE);
|
||||
if (enabled) {
|
||||
launchButton.setOnClickListener(view -> {
|
||||
try {
|
||||
startActivity(mLaunchIntent);
|
||||
} catch (ActivityNotFoundException | SecurityException e) {
|
||||
Log.e(LOG_TAG, "Could not start activity", e);
|
||||
}
|
||||
setResult(Activity.RESULT_OK, mLaunchIntent);
|
||||
finish();
|
||||
});
|
||||
} else {
|
||||
|
||||
@@ -16,8 +16,9 @@
|
||||
*/
|
||||
package com.android.packageinstaller;
|
||||
|
||||
import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
|
||||
import static android.content.Intent.FLAG_ACTIVITY_NO_HISTORY;
|
||||
import static android.content.Intent.FLAG_ACTIVITY_REORDER_TO_FRONT;
|
||||
import static android.content.Intent.FLAG_ACTIVITY_SINGLE_TOP;
|
||||
import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
|
||||
|
||||
import android.Manifest;
|
||||
@@ -789,7 +790,8 @@ public class PackageInstallerActivity extends AlertActivity {
|
||||
}
|
||||
new Handler(Looper.getMainLooper()).postDelayed(() -> {
|
||||
if (!isDestroyed()) {
|
||||
startActivity(getIntent().addFlags(FLAG_ACTIVITY_REORDER_TO_FRONT));
|
||||
startActivity(getIntent().addFlags(
|
||||
FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_SINGLE_TOP));
|
||||
}
|
||||
}, 500);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user