Automated import from //branches/master/...@140830,140830
This commit is contained in:
committed by
The Android Open Source Project
parent
678764730b
commit
04750b6b43
@@ -28390,6 +28390,17 @@
|
||||
visibility="public"
|
||||
>
|
||||
</field>
|
||||
<field name="ACTION_PACKAGE_REPLACED"
|
||||
type="java.lang.String"
|
||||
transient="false"
|
||||
volatile="false"
|
||||
value=""android.intent.action.PACKAGE_REPLACED""
|
||||
static="true"
|
||||
final="true"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
</field>
|
||||
<field name="ACTION_PACKAGE_RESTARTED"
|
||||
type="java.lang.String"
|
||||
transient="false"
|
||||
|
||||
@@ -1125,7 +1125,8 @@ public class Intent implements Parcelable {
|
||||
public static final String ACTION_PACKAGE_INSTALL = "android.intent.action.PACKAGE_INSTALL";
|
||||
/**
|
||||
* Broadcast Action: A new application package has been installed on the
|
||||
* device. The data contains the name of the package.
|
||||
* device. The data contains the name of the package. Note that the
|
||||
* newly installed package does <em>not</em> receive this broadcast.
|
||||
* <p>My include the following extras:
|
||||
* <ul>
|
||||
* <li> {@link #EXTRA_UID} containing the integer uid assigned to the new package.
|
||||
@@ -1135,6 +1136,17 @@ public class Intent implements Parcelable {
|
||||
*/
|
||||
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
|
||||
public static final String ACTION_PACKAGE_ADDED = "android.intent.action.PACKAGE_ADDED";
|
||||
/**
|
||||
* Broadcast Action: A new version of an application package has been
|
||||
* installed, replacing an existing version that was previously installed.
|
||||
* The data contains the name of the package.
|
||||
* <p>My include the following extras:
|
||||
* <ul>
|
||||
* <li> {@link #EXTRA_UID} containing the integer uid assigned to the new package.
|
||||
* </ul>
|
||||
*/
|
||||
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
|
||||
public static final String ACTION_PACKAGE_REPLACED = "android.intent.action.PACKAGE_REPLACED";
|
||||
/**
|
||||
* Broadcast Action: An existing application package has been removed from
|
||||
* the device. The data contains the name of the package. The package
|
||||
@@ -1163,7 +1175,9 @@ public class Intent implements Parcelable {
|
||||
* Broadcast Action: The user has restarted a package, and all of its
|
||||
* processes have been killed. All runtime state
|
||||
* associated with it (processes, alarms, notifications, etc) should
|
||||
* be removed. The data contains the name of the package.
|
||||
* be removed. Note that the restarted package does <em>not</em>
|
||||
* receive this broadcast.
|
||||
* The data contains the name of the package.
|
||||
* <ul>
|
||||
* <li> {@link #EXTRA_UID} containing the integer uid assigned to the package.
|
||||
* </ul>
|
||||
@@ -1173,8 +1187,9 @@ public class Intent implements Parcelable {
|
||||
/**
|
||||
* Broadcast Action: The user has cleared the data of a package. This should
|
||||
* be preceded by {@link #ACTION_PACKAGE_RESTARTED}, after which all of
|
||||
* its persistent data is erased and this broadcast sent. The data contains
|
||||
* the name of the package.
|
||||
* its persistent data is erased and this broadcast sent.
|
||||
* Note that the cleared package does <em>not</em>
|
||||
* receive this broadcast. The data contains the name of the package.
|
||||
* <ul>
|
||||
* <li> {@link #EXTRA_UID} containing the integer uid assigned to the package.
|
||||
* </ul>
|
||||
|
||||
@@ -3248,12 +3248,18 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
res.removedInfo.sendBroadcast(false, true);
|
||||
Bundle extras = new Bundle(1);
|
||||
extras.putInt(Intent.EXTRA_UID, res.uid);
|
||||
if (res.removedInfo.removedPackage != null) {
|
||||
final boolean update = res.removedInfo.removedPackage != null;
|
||||
if (update) {
|
||||
extras.putBoolean(Intent.EXTRA_REPLACING, true);
|
||||
}
|
||||
sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED,
|
||||
res.pkg.applicationInfo.packageName,
|
||||
extras);
|
||||
if (update) {
|
||||
sendPackageBroadcast(Intent.ACTION_PACKAGE_REPLACED,
|
||||
res.pkg.applicationInfo.packageName,
|
||||
extras);
|
||||
}
|
||||
}
|
||||
Runtime.getRuntime().gc();
|
||||
}
|
||||
|
||||
@@ -10142,11 +10142,7 @@ public final class ActivityManagerService extends ActivityManagerNative implemen
|
||||
// this decision.
|
||||
boolean skip = false;
|
||||
if (intent.ACTION_PACKAGE_ADDED.equals(intent.getAction())) {
|
||||
// If this is replacing an existing package, then we allow it
|
||||
// to see the broadcast for it to restart itself.
|
||||
if (!intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)) {
|
||||
skip = true;
|
||||
}
|
||||
skip = true;
|
||||
} else if (intent.ACTION_PACKAGE_RESTARTED.equals(intent.getAction())) {
|
||||
skip = true;
|
||||
} else if (intent.ACTION_PACKAGE_DATA_CLEARED.equals(intent.getAction())) {
|
||||
|
||||
Reference in New Issue
Block a user