Automated import from //branches/master/...@140830,140830

This commit is contained in:
Dianne Hackborn
2009-03-24 18:38:23 -07:00
committed by The Android Open Source Project
parent 678764730b
commit 04750b6b43
4 changed files with 38 additions and 10 deletions

View File

@@ -28390,6 +28390,17 @@
visibility="public"
>
</field>
<field name="ACTION_PACKAGE_REPLACED"
type="java.lang.String"
transient="false"
volatile="false"
value="&quot;android.intent.action.PACKAGE_REPLACED&quot;"
static="true"
final="true"
deprecated="not deprecated"
visibility="public"
>
</field>
<field name="ACTION_PACKAGE_RESTARTED"
type="java.lang.String"
transient="false"

View File

@@ -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>

View File

@@ -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();
}

View File

@@ -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())) {