A task manager isn't really essential for Android. I think I mostly
need it to get rid of bad apps - I typically have enough RAM left for
all my apps to run, but sometimes I just don't WANT them to run
because they are badly written and seem to hog CPU time (i.e. they're
running a worker thread that keeps on running, at least that's my
impression).

My battery kept getting drained pretty quickly today even though I
kept recharging it every few hours and I always had the launcher open,
and the only way I could solve that problem was by resetting the
phone. While this particular case was a persistent app that - like you
mentioned - kept relaunching itself, I can see something similar
happen with a rogue worker thread that I can't shut off (other than by
launching ten heavy apps just go essentially push out the offending
app).


On Jan 27, 9:23 pm, Dianne Hackborn <[email protected]> wrote:
> In general, just going through a couple heavy applications (web browser,
> maps, camera) without pressing back will remove previous apps as much as any
> "task manager" kind of program that you use to kill processes.  The system
> will kill the background app's process as it needs memory for the other
> apps, and this will happen pretty quickly when running through larger
> applications.
>
> For example, if you look at the output of "adb logcat -b events" you can see
> this happen as I go through apps:
>
> First I start Alarm Clock:
>
> I/am_proc_start(   56):
> [13494,10024,com.android.alarmclock,activity,com.android.alarmclock/.AlarmClock]
> I/am_restart_activity(   56):
> [1131476400,119,com.android.alarmclock/.AlarmClock]
> I/am_on_resume_called(13494): com.android.alarmclock.AlarmClock
> I/activity_launch_time(   56):
> [1131476400,com.android.alarmclock/.AlarmClock,1230]
>
> Then I press home and start Browser (here the Browser process was already
> running, so it isn't started):
>
> I/am_pause_activity(   56): [1131476400,com.android.alarmclock/.AlarmClock]
> I/am_resume_activity(   56): [1130026096,2,com.android.launcher/.Launcher]
> I/am_pause_activity(   56): [1130026096,com.android.launcher/.Launcher]
> I/am_new_intent(   56):
> [1131909552,62,com.android.browser/.BrowserActivity,android.intent.action.MAIN,,,272629760]
> I/am_resume_activity(   56):
> [1132547568,62,com.android.browser/.BrowserActivity]
>
> Then home again and go to Maps (and again the Maps process was already
> running):
>
> I/am_pause_activity(   56):
> [1132547568,com.android.browser/.BrowserActivity]
> I/am_resume_activity(   56): [1130026096,2,com.android.launcher/.Launcher]
> I/am_pause_activity(   56): [1130026096,com.android.launcher/.Launcher]
> I/am_new_intent(   56):
> [1131416032,175,com.google.android.apps.maps/com.google.android.maps.MapsActivity,android.intent.action.MAIN,,,272629760]
> I/am_resume_activity(   56):
> [1132428392,175,com.google.android.apps.maps/com.google.android.maps.MapsActivity]
>
> Next home and then Camera, again the process was already running:
>
> I/am_pause_activity(   56):
> [1132428392,com.google.android.apps.maps/com.google.android.maps.MapsActivity]
> I/am_resume_activity(   56): [1130026096,2,com.android.launcher/.Launcher]
> I/am_pause_activity(   56): [1130026096,com.android.launcher/.Launcher]
> I/am_resume_activity(   56): [1132606040,176,com.android.camera/.Camera]
>
> Back to home and then to Calendar, and in this case the Calendar process
> wasn't already running so needs to be started:
>
> I/am_pause_activity(   56): [1132606040,com.android.camera/.Camera]
> I/am_resume_activity(   56): [1130026096,2,com.android.launcher/.Launcher]
> I/am_create_activity(   56):
> [1132590128,177,com.android.calendar/.LaunchActivity,android.intent.action.MAIN,,,270532608]
> I/am_pause_activity(   56): [1130026096,com.android.launcher/.Launcher]
> I/am_proc_start(   56):
> [13525,10006,com.android.calendar,activity,com.android.calendar/.LaunchActivity]
> I/am_create_activity(   56):
> [1131596992,177,com.android.calendar/.DayActivity,,,,0]
> I/am_pause_activity(   56):
> [1132590128,com.android.calendar/.LaunchActivity]
> I/am_finish_activity(   56):
> [1132590128,177,com.android.calendar/.LaunchActivity,app-request]
>
> And now we will go home and go to Gmail, at which point the system will kill
> the alarm clock process because there is not enough memory to run everything
> we have done so far + Gmail:
>
> I/am_pause_activity(   56): [1131596992,com.android.calendar/.DayActivity]
> I/am_resume_activity(   56): [1130026096,2,com.android.launcher/.Launcher]
> I/am_create_activity(   56): [1132519848,178,
> com.google.android.gm/.ConversationListActivityGmail,android.intent.action.MAIN,,,270532608
> ]
> I/am_pause_activity(   56): [1130026096,com.android.launcher/.Launcher]
> I/am_proc_start(   56): [13540,10020,com.google.android.gm,activity,
> com.google.android.gm/.ConversationListActivityGmail]
>
> Boom!  Alarm clock is gone, and Gmail continues:
>
> I/am_proc_died(   56): [13494,com.android.alarmclock]
> I/am_create_activity(   56): [1132200088,178,
> com.google.android.gm/.ConversationListActivity,android.intent.action.MAIN,,,41943040
> ]
> I/am_pause_activity(   56): [1132519848,
> com.google.android.gm/.ConversationListActivityGmail]
> I/am_finish_activity(   56): [1132519848,178,
> com.google.android.gm/.ConversationListActivityGmail,app-request]
>
> Oh and bye-bye Browser too. :)
>
> I/am_proc_died(   56): [13383,com.android.browser]
>
> Some things to note about this:
>
> - The android system outright kills a processes when it needs more memory
> elsewhere, no less than your task manager would be killing a process if you
> request it.  We don't kindly ask a process to go away and assume it is well
> behaved and will respect that, we just kill it dead.
>
> - Just killing a process is -not- going to help you much with applications
> that have background services running, because the Android system will
> quickly schedule them to restart since as far as it is concerned that
> service should still be running.
>
> - Yes, a "running application manager" kind of thing would be nice, but just
> looking at things in terms of running processes misses a lot of the key
> things going on: who is running services, what processes are in the
> foreground vs. background vs. empty, and apps doing things like scheduling
> alarms that cause them to be launched at regular intervals.
>
>
>
> On Tue, Jan 27, 2009 at 8:51 PM, EboMike <[email protected]> wrote:
>
> > The "Task Manager for Root Users" app works just fine for the purpose,
> > no point for every single application to implement its own custom exit
> > functionality.
> > That said, a task manager is somewhat of a necessity to get rid of
> > rogue apps that feel like onPause() doesn't apply to them and have
> > some threads running in the background.
>
> > It's not as much of a problem as in Windows Mobile where you just had
> > to manually kill tasks every so often to keep your system somewhat
> > responsive, but I've found myself use the Android Task Manager app a
> > few times to kill an app that refused to STFU.
>
> > On Jan 27, 1:02 pm, technick <[email protected]> wrote:
> > > It would be nice to have a will to exit applications IMHO
>
> > > On Jan 27, 3:34 pm, "[email protected]"
>
> > > <[email protected]> wrote:
> > > > Hi there,
>
> > > > I wonder: should an Android application have an exit button (or menu
> > > > function) or not?
> > > > Ok, if there's some service or other resources consuming something
> > > > running in the background I think the user should have an option to
> > > > make it stop. But what about an application that would just sit there,
> > > > inactive?
>
> > > > If I take a look at the standard application it seems that the Android
> > > > philosophy is to keep the applications running and let the system
> > > > decide when to stop and destroy an application idling in the
> > > > background. I didn't recognize "exit" or "quit" options in the
> > > > standard programs.
>
> > > > On the other hand - why not let the user decide and give the option to
> > > > quit some software if he knows it's currently not used.
>
> > > > So, what's the advice here?
> > > > Give even a "passive" application an exit button?
> > > > Or not and just leave it to the system?
>
> > > > thanks -
>
> --
> 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.  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