Problem is not the os (talking of Symbian here), its how many apps you run on a device with limited memory.
If you do want to run more apps, get a phone which has more memory, simple.
However, the ability to multitask is more important for people like me who prefer to always have their own scripts "always" running in the background.
---------- Post added at 09:54 PM ---------- Previous post was at 09:41 PM ----------
Here's a sample pys60 script (all of it coded by me) I run in the background for my 6600
Code:
import e32, appswitch, fgimage, graphics, miso, TopWindow
from sysagent import *
from esysagent import *
from audio import *
from time import time, localtime, strftime
Phone = [u'Phone', u'Telephone']
appswitch.switch_to_fg(u"Phone")
#Ttime = [u'00', u'15', u'30', u'45']
Ttime = [u'00']
Otime = [u'00']
alm = "E:\\Sounds\\Alarm\\"
rec = "E:\\Sounds\\Recorded\\Calls\\"
ext1 = ".AMR"
ext2 = ".WAV"
running = 1
app_lock = e32.Ao_lock()
fg = fgimage.FGImage()
left = graphics.Image.open("E:\\Images\\start\\start.bmp")
screen = TopWindow.TopWindow()
screen.size = (80,16)
screen.position = (105,191)
screen.corner_type = 'square'
screen.shadow = 0
img = graphics.Image.new((80,40))
now = strftime("%I:%M:%S%p", localtime())
img.text((3,12),unicode(now),(255,255,255),u"LatinPlain13")
screen.add_image(img, (0,0,80,40))
screen.show()
while running:
if current_call()==ESACallVoice:
# s = Sound.open(rec+strftime("%Y.%m.%d %I-%M-%S", localtime())+ext1)
# s.record()
while current_call()==ESACallVoice:
miso.reset_inactivity_time()
e32.ao_sleep(1)
# s.stop()
if current_call() in [ESACallNone, ESACallData]:
if strftime("%M", localtime()) in Ttime:
if strftime("%S", localtime()) in Otime:
hor = Sound.open(alm+strftime("%I", localtime())+ext2)
min = Sound.open(alm+strftime("%M", localtime())+ext2)
# amp = Sound.open(alm+strftime("%p", localtime())+ext2)
hor.play(1)
e32.ao_sleep(0.75)
min.play(1)
# e32.ao_sleep(1)
# amp.play(1)
if appswitch.application_list(1)[0] in Phone:
screen.remove_image(img, (0,0,80,40))
now = strftime("%I:%M:%S%p", localtime())
img.clear((15,150,235))
img.text((3,12),unicode(now),(255,255,255),u"LatinPlain13")
screen.add_image(img, (0,0,80,40))
screen.show()
fg.set(0,188, left._bitmapapi())
else:
screen.hide()
fg.unset()
elif current_call() not in [ESACallNone, ESACallData]:
screen.hide()
fg.unset()
e32.ao_sleep(0.5)
It has a call monitor built in plus it manages the backlight of the phone, record a call, kill a call, display the time in seconds on the phone screen (display any computed text / image from the disk), maintain a log of calls, a send a text message at a given time, speak the time, alarm, run an app, do something if a certain app is active etc. etc.
A device should do
what you want it to do. Not
what it expects you to do.
You get my point?