Hide heavy-weight API.

And give it a better name, for when it is later un-hidden.

Change-Id: Iae0d3054d44f873b9f953bc41d175a47802a185e
This commit is contained in:
Dianne Hackborn
2010-08-26 14:18:37 -07:00
parent bc5d9d2254
commit 02486b1327
7 changed files with 41 additions and 79 deletions

View File

@@ -4508,17 +4508,6 @@
visibility="public"
>
</field>
<field name="heavyWeight"
type="int"
transient="false"
volatile="false"
value="16843456"
static="true"
final="true"
deprecated="not deprecated"
visibility="public"
>
</field>
<field name="height"
type="int"
transient="false"
@@ -19543,17 +19532,6 @@
visibility="public"
>
</method>
<method name="isImmersive"
return="boolean"
abstract="false"
native="false"
synchronized="false"
static="false"
final="false"
deprecated="not deprecated"
visibility="public"
>
</method>
<method name="isTaskRoot"
return="boolean"
abstract="false"
@@ -20507,19 +20485,6 @@
<parameter name="uri" type="android.net.Uri">
</parameter>
</method>
<method name="setImmersive"
return="void"
abstract="false"
native="false"
synchronized="false"
static="false"
final="false"
deprecated="not deprecated"
visibility="public"
>
<parameter name="i" type="boolean">
</parameter>
</method>
<method name="setIntent"
return="void"
abstract="false"
@@ -46505,17 +46470,6 @@
visibility="public"
>
</field>
<field name="FLAG_HEAVY_WEIGHT"
type="int"
transient="false"
volatile="false"
value="1048576"
static="true"
final="true"
deprecated="not deprecated"
visibility="public"
>
</field>
<field name="FLAG_KILL_AFTER_RESTORE"
type="int"
transient="false"

View File

@@ -3748,6 +3748,7 @@ public class Activity extends ContextThemeWrapper
* {@link #setImmersive}.
*
* @see android.content.pm.ActivityInfo#FLAG_IMMERSIVE
* @hide
*/
public boolean isImmersive() {
try {
@@ -3770,6 +3771,7 @@ public class Activity extends ContextThemeWrapper
*
* @see #isImmersive
* @see android.content.pm.ActivityInfo#FLAG_IMMERSIVE
* @hide
*/
public void setImmersive(boolean i) {
try {

View File

@@ -272,17 +272,6 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
*/
public static final int FLAG_SUPPORTS_XLARGE_SCREENS = 1<<19;
/**
* Value for {@link #flags}: set to <code>true</code> if the application
* has reported that it is heavy-weight, and thus can not participate in
* the normal application lifecycle.
*
* <p>Comes from the
* {@link android.R.styleable#AndroidManifestApplication_heavyWeight android:heavyWeight}
* attribute of the &lt;application&gt; tag.
*/
public static final int FLAG_HEAVY_WEIGHT = 1<<20;
/**
* Value for {@link #flags}: this is true if the application has set
* its android:neverEncrypt to true, false otherwise. It is used to specify
@@ -309,6 +298,19 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
*/
public static final int FLAG_NATIVE_DEBUGGABLE = 1<<28;
/**
* Value for {@link #flags}: set to <code>true</code> if the application
* has reported that it is heavy-weight, and thus can not participate in
* the normal application lifecycle.
*
* <p>Comes from the
* {@link android.R.styleable#AndroidManifestApplication_heavyWeight android:heavyWeight}
* attribute of the &lt;application&gt; tag.
*
* {@hide}
*/
public static final int CANT_SAVE_STATE = 1<<27;
/**
* Flags associated with the application. Any combination of
* {@link #FLAG_SYSTEM}, {@link #FLAG_DEBUGGABLE}, {@link #FLAG_HAS_CODE},

View File

@@ -1601,15 +1601,17 @@ public class PackageParser {
ai.enabled = sa.getBoolean(
com.android.internal.R.styleable.AndroidManifestApplication_enabled, true);
if (sa.getBoolean(
com.android.internal.R.styleable.AndroidManifestApplication_heavyWeight,
false)) {
ai.flags |= ApplicationInfo.FLAG_HEAVY_WEIGHT;
// A heavy-weight application can not be in a custom process.
// We can do direct compare because we intern all strings.
if (ai.processName != null && ai.processName != ai.packageName) {
outError[0] = "Heavy-weight applications can not use custom processes";
if (false) {
if (sa.getBoolean(
com.android.internal.R.styleable.AndroidManifestApplication_cantSaveState,
false)) {
ai.flags |= ApplicationInfo.CANT_SAVE_STATE;
// A heavy-weight application can not be in a custom process.
// We can do direct compare because we intern all strings.
if (ai.processName != null && ai.processName != ai.packageName) {
outError[0] = "cantSaveState applications can not use custom processes";
}
}
}
}
@@ -1907,7 +1909,7 @@ public class PackageParser {
sa.recycle();
if (receiver && (owner.applicationInfo.flags&ApplicationInfo.FLAG_HEAVY_WEIGHT) != 0) {
if (receiver && (owner.applicationInfo.flags&ApplicationInfo.CANT_SAVE_STATE) != 0) {
// A heavy-weight application can not have receives in its main process
// We can do direct compare because we intern all strings.
if (a.info.processName == owner.packageName) {
@@ -2197,7 +2199,7 @@ public class PackageParser {
sa.recycle();
if ((owner.applicationInfo.flags&ApplicationInfo.FLAG_HEAVY_WEIGHT) != 0) {
if ((owner.applicationInfo.flags&ApplicationInfo.CANT_SAVE_STATE) != 0) {
// A heavy-weight application can not have providers in its main process
// We can do direct compare because we intern all strings.
if (p.info.processName == owner.packageName) {
@@ -2438,7 +2440,7 @@ public class PackageParser {
sa.recycle();
if ((owner.applicationInfo.flags&ApplicationInfo.FLAG_HEAVY_WEIGHT) != 0) {
if ((owner.applicationInfo.flags&ApplicationInfo.CANT_SAVE_STATE) != 0) {
// A heavy-weight application can not have services in its main process
// We can do direct compare because we intern all strings.
if (s.info.processName == owner.packageName) {

View File

@@ -744,15 +744,17 @@
<attr name="restoreNeedsApplication" />
<attr name="restoreAnyVersion" />
<attr name="neverEncrypt" />
<!-- Declare that this is a heavy-weight application. This kind of
application is not able to save and restore its state on demand,
so can not participate in the normal activity lifecycle. It will
<!-- Declare that this applicationn can't participate in the normal
state save/restore mechanism. Since it is not able to save and
restore its state on demand,
it can not participate in the normal activity lifecycle. It will
not be killed while in the background; the user must explicitly
quit it. Only one such app can be running at a time; if the user
tries to launch a second heavy-weight app, they will be prompted
to quit the first before doing so. While a heavy-weight
application is running, the user will be informed of this. -->
<attr name="heavyWeight" format="boolean" />
tries to launch a second such app, they will be prompted
to quit the first before doing so. While the
application is running, the user will be informed of this.
@hide -->
<attr name="cantSaveState" format="boolean" />
</declare-styleable>
<!-- The <code>permission</code> tag declares a security permission that can be

View File

@@ -1250,7 +1250,7 @@
<public type="attr" name="logo" id="0x010102be" />
<public type="attr" name="xlargeScreens" id="0x010102bf" />
<public type="attr" name="heavyWeight" id="0x010102c0" />
<public type="attr" name="cantSaveState" id="0x010102c0" />
<public type="attr" name="immersive" id="0x010102c1" />
<public-padding type="attr" name="kraken_resource_pad" end="0x01010300" />

View File

@@ -504,7 +504,7 @@ public class ActivityStack {
r.info, r.icicle, results, newIntents, !andResume,
mService.isNextTransitionForward());
if ((app.info.flags&ApplicationInfo.FLAG_HEAVY_WEIGHT) != 0) {
if ((app.info.flags&ApplicationInfo.CANT_SAVE_STATE) != 0) {
// This may be a heavy-weight process! Note that the package
// manager will ensure that only activity can run in the main
// process of the .apk, which is the only thing that will be
@@ -2404,7 +2404,7 @@ public class ActivityStack {
final long origId = Binder.clearCallingIdentity();
if (mMainStack && aInfo != null &&
(aInfo.applicationInfo.flags&ApplicationInfo.FLAG_HEAVY_WEIGHT) != 0) {
(aInfo.applicationInfo.flags&ApplicationInfo.CANT_SAVE_STATE) != 0) {
// This may be a heavy-weight process! Check to see if we already
// have another, different heavy-weight process running.
if (aInfo.processName.equals(aInfo.applicationInfo.packageName)) {