Open Source • Background Tasks: Itoo 🚀

Itoo 4

  • Bug fixes and improvements

  • Broadcasting from App to Background service and vice-versa is now possible

    component_event

    • Any message sent from the background service will be received by this event
  • StoreProperty now uses object serialization like TinyDB — making it possible to store any kind of App Inventor data type

  • Breaking change — adds valueIfTagNotThere socket to set the default return value

    component_method

  • Fixes service conflicts, earlier when you tried to run two Itoo services, only one of them would run, this is now fixed.

  • Fixes permission requesting problem — now the framework ignores any permission requests made in the background

  • Fix starting an activity from background, like (Taifun Alarm's Set Alarm block), while there are still certain limits — extension returns default result okay code.

Download: xyz.kumaraswamy.itoo.aix (66.8 KB)

6 Likes

Itoo extension is now open-source under GPL V3 License

4 Likes

im using Itoo extension that can make background process.
but i can't figure out where i have to attach it

Hi you need to use CreateProcess and not CreateTask to create a process.
And you can ignore the result of CreateProcess

2 Likes

thank you. it solved my problem

1 Like

Excellent update, and that too for free ! You're a charm for the community.

1 Like

Alguien por favor me dice
Porque mi extension no tiene el bloque CreateWithTrigger?

Maybe you have not updated the extension

Hello,
i have a problem with start the process in background.
If call the web1.get from button its works ( i see the get request on the server)
but in the process background the requast not run
where am I wrong?
i would like to run the request every minute and update the label with response content

Sorry for my English and thanks forward

There is no condition attached to the if block, so the actions inside of it (the Itoo.CreateProcess block) will not be run. Also, the block to call the send_get procedure should be in the Clock1.Timer event.

1 Like

sorry, is a misprint.
But the result does not change if the block to call the "send_get" is in the "Clock1.Timer" event.
is correct?

Hi, please ask it in the Kodular community. Create a new topic there. I'll answer you there.

2 Likes

Thanks, i have Awaiting Approval in the community from greater then 24 ore .

I'll wait

you have to Register the Clock1.Timer event inside the get_notis procedure
Unbenannt

there is no such event as notis, the clock does only have a Timer event...

also you should register the Web1.GotText event and define a corresponding procedure to receive the response

Taifun

2 Likes

hi, i have tested with MIT, but i get the same result. i tested with your information but the request not run.
I haven't added any more code blocks for now.
I see the backend server logs to understand if the request was sent.
Obviously with the button1 the request arrives on the server

the event name to register is Clock1.Timer
and it should be registered inside the get_notis procedure and not inside the Clock1.Timer event

also you forgot to

Taifun

Just do one single change to the blocks above. Just change the value for the socket eventName and set it to Timer and you are all done.

1 Like

Sorry but I don't understand.
It still does not work.
I've done various tests but it doesn't work at all.
Doesn't create the process (I think the "CreateProcess" block doesn't work)
If I check with "Button3" I always get not running.
If I call "Button1" it sends the request to the server but does not start the "cicle1" procedure

your procedure get_notis it here to register all events, also the Web1.GotText event
and your procedure cicle1 (why such a strange name, anyway...) should have the same arguments as the Web1.GotText event
and: in the background there is no user interface, there is no label etc... if you want to see something, use logcat or the notification style extension, see several examples here in this thread

Taifun

1 Like
  1. You cannot use UI components in the background, that means you cannot use Label2 component. Use the notification style modified extension to show a notification when the Web 1 Got text.

  2. Also you need to change the signature of the circle1 block, add the required parameters. Same as the Web1.GotText

    image