summaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2011-02-24 14:40:20 -0800
committerDianne Hackborn <hackbod@google.com>2011-02-25 14:46:27 -0800
commite7f972122db87dc54e41ed1a6e417534d43bca3a (patch)
tree8342973439086cceaa3c66fed400bf894abf36de /api
parent56d9353195e4c767e60ecfab1e118d3cc30f3a91 (diff)
downloadframeworks_base-e7f972122db87dc54e41ed1a6e417534d43bca3a.zip
frameworks_base-e7f972122db87dc54e41ed1a6e417534d43bca3a.tar.gz
frameworks_base-e7f972122db87dc54e41ed1a6e417534d43bca3a.tar.bz2
Implement issue #3426299: Introduce application "stopped" state
The package manager now keeps track of whether an application is stopped. There are new intent flags to control whether intent filters in a stopped application will match the intent. This is currently used in one place, sending broadcasts, so that stopped apps can not be launched due to background processes. The package manager during first init makes sure no applications are in the stopped state. When new applications are installed, that begin in the stopped state. When the activity manager is launching a component of an application, it ensures the application is taken out of the stopped state. The "force stop" button in manage applications will now put an application back in to the stopped state; it can't go back out of the stopped state until one of its components is launched by the activity manager. There will probably be a few more places where we need to filter stopped applications out of intent matches, but doing this for broadcast is a very big first step. This also introduces a new broadcast that is sent to an application after it is replaced with a new .apk. But only if the app is not in the stopped state. This makes it a lot easier for developers to implement code to get their application back in proper running shape after an upgrade. Finally another new broadcast is added that is sent to a package's installer at the first time it is launched. This allows the installer to tell the package about it being installed only when it is first actually used. Change-Id: I589c53ff0e0ece868fe734ace4439c0d202dca2d
Diffstat (limited to 'api')
-rw-r--r--api/current.xml55
1 files changed, 55 insertions, 0 deletions
diff --git a/api/current.xml b/api/current.xml
index 1089604..a850434 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -53165,6 +53165,17 @@
visibility="public"
>
</field>
+<field name="ACTION_MY_PACKAGE_REPLACED"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;android.intent.action.MY_PACKAGE_REPLACED&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="ACTION_NEW_OUTGOING_CALL"
type="java.lang.String"
transient="false"
@@ -53209,6 +53220,17 @@
visibility="public"
>
</field>
+<field name="ACTION_PACKAGE_FIRST_LAUNCH"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;android.intent.action.PACKAGE_FIRST_LAUNCH&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="ACTION_PACKAGE_INSTALL"
type="java.lang.String"
transient="false"
@@ -54484,6 +54506,17 @@
visibility="public"
>
</field>
+<field name="FLAG_EXCLUDE_STOPPED_PACKAGES"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="FLAG_FROM_BACKGROUND"
type="int"
transient="false"
@@ -54517,6 +54550,17 @@
visibility="public"
>
</field>
+<field name="FLAG_INCLUDE_STOPPED_PACKAGES"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="32"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="FLAG_RECEIVER_REGISTERED_ONLY"
type="int"
transient="false"
@@ -58332,6 +58376,17 @@
visibility="public"
>
</field>
+<field name="FLAG_STOPPED"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="2097152"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="FLAG_SUPPORTS_LARGE_SCREENS"
type="int"
transient="false"