Open Source β€’ Background Tasks: Itoo πŸš€

initialize global variable time_interval1 to a large value, for example 1000000
the correct sequence is this

Taifun

i change it as you say , but it stop the notification (that was each 1 second )
now its not working

what if i change time interval with if statement to check time and excite procedure

what if you

unknown

Taifun


its not working . the repeat notifications is stop and no notification is show .

which time picker value did you try?
what is the timer interval you got displayed in Label3?
for debugging use logcat

EDIT: for an alarm example with itoo you also can try this

btw. usually you would use the alarmmanager feature of your Android device, which does not require to display a persistent notification... the Android system just will trigger your app at the given time "magically"... you coule use my paid alarmmanager extension for this...

Taifun

thanks for your help , but i need small notification not alarm , if you can i will send aia file to modify it ,
the timepicker i try is first one always but now it doesn't work

the purpose of an alarmmanager is to send a notification at a given time in the future without displaying a persistent notification

read again my previous answer and provide some answers...

Taifun

please try to open it and make what ever you want and send it to me
bgtasksClock (1).aia (153.6 KB)

just for 1 time picker

Unfortunately my free service ends here... I can fix your project and work with your aia file for a small fee... just send me a PM if you are interested in this...

Else check this example as already mentioned earlier

Taifun

A post was merged into an existing topic: Alarm Manager with Itoo

I am experiencing what seems like a similar event failure in the service process with the PhoneCall component's PhoneCallStarted and PhonecallEnded events.

To illustrate this, I modified the ItooMusic app to show that while the user interface receives these events, the Itoo service does not.

I am using Itoo 4.4.2 but have explicitly registered both events in the original manner. (I also tried it using the added implicit feature with a procedure properly named.)

The following screen shows starting the player. Then a call is made to the phone and rejected. Finally, the player is stopped.

The blocks:

The aia:
ItooMusic_orig_PhoneCall.aia (4.2 MB)

So far I have only tested this on Android 8. When the app starts for the first time (after being freshly installed) it asks for permission to make and manage phone calls , whereupon I select "Allow".

Have I misunderstood or misused something?

Kind regards,
Randal

1 Like

Will get back to this... Soon

Thank you very much for the reply. I realize you are "out of pocket" presently... I hope you are having an enjoyable or productive time (whichever you have intended.) :slight_smile:

Look forward to hearing from you when you have time.

Kind regards,
Randal

1 Like

I'm getting this error after 40min - 1h with the app open:

08-08 13:12:10.294  8504  8504 E AndroidRuntime: java.lang.RuntimeException: Unable to resume activity {appinventor.ai_lipscellplay.imobmapa_motorista_nat_logs/appinventor.ai_lipscellplay.imobmapa_motorista_nat_logs.Screen1}: java.lang.IllegalStateException: Too many receivers, total of 1000, registered for pid: 8504, callerPackage: appinventor.ai_lipscellplay.imobmapa_motorista_nat_logs

It happens when I reopen the minimized app after several times, probably when onResume is called:

08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at xyz.kumaraswamy.itoo.Itoo.onResume(Itoo.java:164)

I was careful not to restart the process:

I'm using this latest update of the extension:
Extension Version: Itoo Sky 4.4.2
Date Built: 2025-06-20

any idea what it could be?

Logs:

08-08 13:12:10.294  8504  8504 E AndroidRuntime: FATAL EXCEPTION: main
08-08 13:12:10.294  8504  8504 E AndroidRuntime: Process: appinventor.ai_lipscellplay.imobmapa_motorista_nat_logs, PID: 8504
08-08 13:12:10.294  8504  8504 E AndroidRuntime: java.lang.RuntimeException: Unable to resume activity {appinventor.ai_lipscellplay.imobmapa_motorista_nat_logs/appinventor.ai_lipscellplay.imobmapa_motorista_nat_logs.Screen1}: java.lang.IllegalStateException: Too many receivers, total of 1000, registered for pid: 8504, callerPackage: appinventor.ai_lipscellplay.imobmapa_motorista_nat_logs
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4798)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4831)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:54)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2247)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:106)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at android.os.Looper.loopOnce(Looper.java:201)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:288)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:7881)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:568)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1045)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: Caused by: java.lang.IllegalStateException: Too many receivers, total of 1000, registered for pid: 8504, callerPackage: appinventor.ai_lipscellplay.imobmapa_motorista_nat_logs
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at android.os.Parcel.createExceptionOrNull(Parcel.java:2464)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at android.os.Parcel.createException(Parcel.java:2440)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at android.os.Parcel.readException(Parcel.java:2423)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at android.os.Parcel.readException(Parcel.java:2365)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at android.app.IActivityManager$Stub$Proxy.registerReceiverWithFeature(IActivityManager.java:5601)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1770)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at android.app.ContextImpl.registerReceiver(ContextImpl.java:1731)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at android.app.ContextImpl.registerReceiver(ContextImpl.java:1718)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:732)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at xyz.kumaraswamy.itoo.Itoo.onResume(Itoo.java:164)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at com.google.appinventor.components.runtime.Form.onResume(Form.java:732)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1476)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at android.app.Activity.performResume(Activity.java:8190)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4787)
08-08 13:12:10.294  8504  8504 E AndroidRuntime: 	... 13 more

Please provide a few more relevant blocks...
What exactly are you doing in the background?

Remember, this is the same issue you mentioned here [PAID] πŸ“ Location Service Extension - #166 by el_barto

Taifun

The application essentially monitors the status of a web request in the background. The process is called every 10 seconds.
It also sends the location in the background using its extension.

Sending location:

Some observations

  • in your main procedure run you forgot an evaluate but ignore result Web2
  • how does the event handler webgot look like?
  • in the timer event handler the 2 evaluate but ignore result blocks are obsolete
  • in your OnLocationChanged event handler the evaluate but ignore result block is obsolete
  • It might help to add more Notifier.LogInfo blocks into your background event handlers
  • it would be great to get an error log including more information what previously happened including itoo and Notifier debug statements

Taifun

Is it possible to detect an hot word using itoo. Ex
When I say ok google google gemini. automatically opens