← Back to team overview

ubuntu-phone team mailing list archive

Re: Running background services

 

It's pretty straight forward, applications simply cannot do any work
when they are not in the foreground (for v1).

However, don't worry! These cases would be handled by consuming
services. There isn't currently an upload service that goes to an
arbitrary place, but there is a Friends service that allows uploading
to social networks that are supported in Friends. So your camera app
could upload using that, even if the user puts your app in the
background. There will be a general purpose download service. There
will be a timer service for things like alarms and such. So if deja
dupe is running, it could use the timer service to get called to the
foreground periodically to do it's work.

Cheers, Rick

On Wed, Aug 14, 2013 at 10:25 AM, Fabio Colella <fcole90@xxxxxxxxx> wrote:
> Things are getting confused, so I put some use cases. For example, a client
> of Ubuntu one that sync photos when a new one is shot? Or a daily backup? Is
> this possible? And if it is, what's the path? :) I'm thinking from a event
> driven point of view. Does the user always need to open the application for
> synchronization or it can be automated? What about a mobile déjà dup? This
> is something that cannot rely on user focus, it would become really boring.
> Just more, how are currently handled events in calendar app? Or is it
> different because it's a system app?
>
> Thank you very much for your time :)
>
> Il giorno 14/ago/2013 16:09, "Roberto Colistete Jr."
> <roberto.colistete@xxxxxxxxx> ha scritto:
>
>>     Hi,
>>
>>     Please, let it be clear about Ubuntu Touch :
>> - currently Apps screen shows "Running Apps" with (not live) miniatures of
>> open softwares. These softwares are not-focused ? If so, they can be closed
>> by the system ?
>> - if the user have installed a mathematical application and want to let an
>> integral calculation run (for 30s or even some minutes, it depends a lot on
>> the complexity of the integral) while he/she can browse the web, etc. Will
>> the mathematical application be stopped by the system even if it is shown as
>> "Running Apps" miniature ?
>>
>>     About the link cited below, I am worried to see :
>> a) no mention of Symbian, Maemo, MeeGo Harmattan, WebOS, BlackBerry OS in
>> :
>> "Write summary of how other OSes (iOS, Android, Windows) handle background
>> activities: DONE
>>   Write summary of how other OSes (iOS, Android, Windows) handle
>> applications state preservation: DONE"
>> As iOS, Android and Windows Phone have the most limited multitasking among
>> the mobile OS, i.e., they don't let the user decides which softwares remain
>> open or not. In the opposite side, Maemo 5 and MeeGo Harmattan even show
>> live miniatures of running softwares (see the video of Maemo 5 on a Nokia
>> N900 from 1min26s) :
>> https://www.youtube.com/watch?v=mLuYmaM6J-c
>> b) in the document "Draft : Application Model", section "Application
>> Lifecycle -> Meta State : Running -> State : Unfocused" :
>> "Please note that the runtime system can decide to transition the
>> application instance to not running at its own discretion and at any point
>> in time.
>> ... applications can not interfere with the runtime’s decision to
>> transition an application instance to the “Not Running” meta-state."
>>
>>     It seems Canonical wants Ubuntu Touch to have multitasking à la
>> Android, iOS and Windows Phone. Is it true ?
>>
>>         Regards,
>>
>>         Roberto
>>
>>
>> Em 14-08-2013 05:34, Thomas Voß escreveu:
>>
>> Please also see:
>>
>>
>> https://blueprints.launchpad.net/ubuntu/+spec/client-1303-add-app-model-and-lifecycle-to-platform-api
>>
>> and the linked documents for further details.
>>
>>   Thomas
>>
>> On Wed, Aug 14, 2013 at 10:33 AM, Thomas Voß <thomas.voss@xxxxxxxxxxxxx>
>> wrote:
>>
>> The state of an application is transparent to the user. Behind the
>> scenes, the system can decide to stop/kill non-focused apps at its own
>> discretion. Whenever the system alters the state of an app to "not
>> running" it offers an archive such that the app can persist its state.
>> With that, a user ideally never realizes that an app has been stopped
>> or killed.
>>
>> Thomas
>>
>>
>>
>> On Wed, Aug 14, 2013 at 10:08 AM, Tobias Havla <tbhavla@xxxxxxxxx> wrote:
>>
>> On 14.08.2013 10:04, Thomas Voß wrote:
>>
>> On Wed, Aug 14, 2013 at 9:56 AM, Tobias Havla <tbhavla@xxxxxxxxx> wrote:
>>
>> On 14.08.2013 09:54, Thomas Voß wrote:
>>
>> On Wed, Aug 14, 2013 at 9:41 AM, Michael Zanetti
>> <michael.zanetti@xxxxxxxxxxxxx> wrote:
>>
>> On Wednesday 14 August 2013 09:31:31 Daniel Holbach wrote:
>>
>> Hello,
>>
>> On 14.08.2013 09:29, Michael Zanetti wrote:
>>
>> On Wednesday 14 August 2013 09:07:52 Thomas Voß wrote:
>>
>> Hey Fabio,
>>
>> no, applications are not allowed to run in background. Our application
>> lifecycle is strict in this respect and we only guarantee focused
>> applications to be running.
>>
>> Does that mean I will have an Ubuntu Edge phone with 4GB of RAM, 8 CPU
>> cores and cannot do multitasking on it?
>>
>> I don't think anyone specified the phone to have 8 CPU cores - where did
>> you read that?
>>
>> Nowhere... I think you get my point...
>>
>> How is "app authors can write daemons" = multitasking?
>>
>> How does this relate? Thomas said there will be no running apps in the
>> background / minimzed apps, which to me means there will be no
>> multitasking.
>>
>>
>> We have had this conversation multiple times in the past, and version
>> 1 of our application lifecycle will not allow to run arbitrary
>> applications in the background. Instead, we will provide selected
>> services to hand over to the system for certain tasks, e.g.,
>> downloads, alarms, music playback. Please note that this is a policy
>> targetted towards the "mobile phone" usage scenario and swapping
>> policies at runtime when transitioning to different usage scenarios is
>> one of the primary goals of the lifecycle architecture.
>>
>> Version 2 of the lifecycle will then allow applications to run their
>> own background tasks, UI less, with restrictions on
>> CPU/Memory/resources in general.
>>
>> Thomas
>>
>> --
>> Mailing list: https://launchpad.net/~ubuntu-phone
>> Post to     : ubuntu-phone@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~ubuntu-phone
>> More help   : https://help.launchpad.net/ListHelp
>>
>> If Ubuntu Touch doesn't support multi task it is far behind iOS,
>> Android, Windows Phone and Blackberry. Sorry, I thought it would be a
>> modern system that requires a lot of power, so we can do the same things
>> as on our PCs.
>>
>> Okay, let's be clear here: Multitasking and application lifecycle are
>> related but distinct topics. Obviously, Ubuntu Touch will support
>> multi-tasking, but an application lifecycle architecture that allows
>> for controlling resource consumption of applications by the system is
>> sorely needed to ensure a long-running _mobile_ device. It is not
>> sufficient to assume that app authors will get it right and it is
>> important to note that users always "blame" the platform for bad
>> battery life. And that is for a good reason: It's the platform's/OS's
>> responsibility to put mechanisms in place to manage a device's
>> resources!
>>
>> Our application lifecycle policies and state machines allow us to
>> exercise this level of control for specific usage scenarios, but they
>> do not touch on general multi-tasking capabilities and we can leverage
>> the full process state spectrum to ensure a seamless operation.
>>
>>   Thomas
>>
>> So can two or three applications run at the same time and other gets
>> closed/suspended or can I switch between two applications only with
>> reloading the application?
>> We have a gesture to quick switch between apps, so if we have to reload
>> apps while we are multitasking this gesture makes no sense. A good way
>> would be suspending apps like Android does (/Greenify). The doesn't
>> notice that and the battery life is good.
>>
>>
>>
>> --
>> Mailing list: https://launchpad.net/~ubuntu-phone
>> Post to     : ubuntu-phone@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~ubuntu-phone
>> More help   : https://help.launchpad.net/ListHelp
>>
>
> --
> Mailing list: https://launchpad.net/~ubuntu-phone
> Post to     : ubuntu-phone@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~ubuntu-phone
> More help   : https://help.launchpad.net/ListHelp
>


References