Background Tasks [4.1] 🥳


Basically this is what i want to achieve:
1 - check if a file contains the text “ORANGE” (UPPERCASE)
2 - every 5 seconds “GotText” via “Web1” and check if "val3.contains(“ORANGE)”.
3 - if true show notification “contain”

while trying to check “val3” value it returns something like “[java.lang.string @4aa29d0b

i’ll give a try at @Bharat_Android_App_Develo suggestion

Tried with the updated aia, the text reading only works only if the app is in foreground (focused) only

1 Like

I am investigating the cause.

1 Like

Could you please show me your blocks? I could not reproduce the issue. I had faced the same problem, but I was somehow able to overcome the problem.

Background Tasks 3.4 A

Another exciting update is here with features and bug fixes! :grin:
There may be a few bugs in the release, if you find them, let me know :sweat_smile:

  • Periodic tasks

    • Wanted to run a task every interval? The periodic task is the choice! :upside_down_face:

      Periodic tasks will run the service with the given interval with a minimum interval which is 15 minutes (after Android oreo). This functionality cannot be used with latency. Latency should be set to zero.


  • Boot listener

    • The extension already has the ability to start the service automatically if the phone is booted. But listening to it was not posible. This update adds functionality to start a service when the phone is rebooted or switched on.


      If you set the Id to “777” while using the above block, the tasks will be saved and be executed when the boot is completed.

  • Multiple events

    • In the previous versions, the extension would just use the listen to the last registered event. Using multiple events on it was not possible. This is now fixed.

  • Flags feature

    • Flags are to pass any extra values or to change the behaviour of the service. There are currently three flags.

      • FOREGROUND_IMPORTANT Marks the foreground state of the service as important using the internal API.

      • IGNORE_FIRST_PERIODIC_RUN Ignores the first periodic run which gets immediately fired when the service is started. Make sure to stop the service before starting it again if you are using periodic tasks, else it may misbehave.

      • ACTIVITY_NO_KILL The flag is to stop the tasks (like the player) from being killed when the app is alive and the service is being killed.

  • Change event values

    • Now you can change the invoke values before sending it to any function if you are using the ExtraFunction block to handle events.

      For this, you will need to have a basic knowledge of Java. The same can be done to variables from now on. They will be changed when the result is true.

  • Deprecation

    • The block CreateComponentOnUi is now deprecated. All the components will be created on the UI thread from now on.

Download extension: com.kumaraswamy.tasks.aix (464.9 KB)


Check out the updated source on GitHub!

Made with Rush :grinning:
If rush wasn’t there, the extension for Kodular may not have existed.


Nice work @Xoma

1 Like

can someone help me :raising_hand_man:
i am really a newbie i learn from Youtube so i don’t know very well
i want to make a app to remind drinking water
ex 12:00am 1 pm 2 pm
how i make with this
please show be blocks


This is possible, what have you tried?

Very nice extension.
I need help making a geo fence app
Using the cellid that the phone is connected.
Alerting the user that the phone has moved.
The background process needs to compare the current cellid to the entered cid by the user.

These are my blocks
Can’t get it to work.

Hi TApps,

Make sure you are using the latest version.
There are some wrong things in your blocks.

You are only passing one parameter to the “show-notification” function. It should be two and not a single value.

Also, the above block is invalid, and where are you calling the extra function “process”?
Also this update uses another way of access event values.

1 Like

How can we do this to variable?

Just create a variable with blocks then you can set/modify data.
Else you can call <something> :: variable(myvariable, <DATA>)

1 Like

Actually this is kind of a testing feature, so I have not included in the documentation.

I will be testing it then.
Because I to change delay time to 0.
I am confused, If I delay by 40 minutes then call funtion and set periodic to 2 hours.
After first (40 min later)
Second one will be delayed by 2hr 40 min ryt?

I do nothing in block and Don’t know how to and where to start in block
I just design the app

I fixed what you said
still the compare of the entered variable to the Real Time Cellid
does not happen
Can you help?

GeoFencing.aia (493.1 KB)
I Need It To Check For Change every 3 seconds

You do the way:

Use periodic tasks with 40 minutes intervals. If you want to skip the first run that will be called immediately, you can use IGNORE_FIRST_PERIODIC_RUN flag without space. So, the service will run every 40 minutes. You can change this time.

There are some examples with project files :wink:, you can try them.

1 Like

The above block is wrong!

Below is the correct function, do it as in the below image.

Also “Current-Cid” is an invalid block. You are giving it the name “Cid” which is invalid.


the notification happens only once
even if the compare is wrong
is this how i compare variables? what is “{$0}”