Given how few people actually know how this part of the system works, and
how many people -think- they know how it works, I would take any feedback
about unexpected behavior with a huge grain of salt.  Unless you can get
exact steps from someone: "the app was like this, I did this, then this, and
now the app is like that" then I don't see any way to determine if they are
reporting something that actually makes sense.

I mean, look at all of the developers who get complaints about "your app
won't stop" or "your app starts running after I make it stop," when the app
is actually behaving in a perfectly expected, desired, and ordinary way, and
there is nothing wrong, nor anything that would cause the user's device to
behave poorly in any way.  Given that, what are the chances that someone who
is reporting that a task killer app is starting other apps is just as
confused?  (We'll just lightly mention here the irony that some amount of
this confusion is being caused by these task killer apps, such as how they
are presenting the state of the system to the user in a misleading way.)

There is no guarantee that after you call the restartPackage() function that
the package won't just start right back up for some reason, such as a
broadcast.

In fact, what you are doing could very well allow other applications to
start running.  For example, there are are too many applications trying to
run background services, the system will start killing them and not allowing
all of them to run at the same time.  If the user uses the task killer to
stop the package of one of those services, that will free up memory for
another service to then start running again.  Or it will leave enough memory
that some application that gets run occasionally in the background can now
have its empty process kept around to be reused if it is launched again.

Specific answers to your questions:

On Wed, Dec 9, 2009 at 2:25 PM, justinh <[email protected]> wrote:

> 1) Is it possible that some carrier build out there has changed the
> functionality of this method to *actually* restart the package after
> it's process is killed?
>

They shouldn't, since this is the method used to implement the user's "Force
Stop" button in Manage Applications and elsewhere.  I can't say that we have
a good test for this API, though, so I wouldn't make guarantees.


> 2) I haven't tested with a SenseUI phone - I'm thinking there might be
> a situation where my app is killing a process that is shared by their
> SenseUI business or something, which is then relaunched on TIME_TICK
> or TIMEZONE_CHANGED or something. (similar behavior to myFaves on the
> G1). For example, their Facebook UI might share com.android.mms? Can
> anyone confirm this?
>

There are numerous reasons why processes may later get started after
something is killed, as outlined above.  It's really not something you can
easily predict, nor is it something that was ever intended to be visible to
users.

Fwiw, the Running Services UI in Android 2.0 and later is a much more
focused UI on just the things that can most typically impact the user
experience.  (The main other way background processes can impact their
experience is by spinning the CPU or using power in other ways, and they
should thus get the blame for a resulting low battery in the battery usage
UI.)

-- 
Dianne Hackborn
Android framework engineer
[email protected]

Note: please don't send private questions to me, as I don't have time to
provide private support, and so won't reply to such e-mails.  All such
questions should be posted on public forums, where I and others can see and
answer them.

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to