Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Search instead for 
Did you mean: 
nmaves
Level 7

What is the proper way to reuse tasks?

Right now I have a periodic task that runs every 25 seconds to maintain a session with our backend.

I am executing the following function every 25 seconds.  At some point, I seem to have multiple PlaybackSessionTask tasks running at the same time.  Is there a way to clean up the created tasks once they have completed?  Should I reuse one task and just call start?

function saveSession(titleId, seconds)
    m.playbackSessionTask = createObject("roSGNode", "PlaybackSessionTask")
    m.playbackSessionTask.observeField("response", "handleSaveSession")
    m.playbackSessionTask.functionName = "save"
    m.playbackSessionTask.contentId = titleId
    m.playbackSessionTask.seconds = seconds
    m.playbackSessionTask.control = "RUN"
end function
0 Kudos
2 Replies
drodine
Level 7

Re: What is the proper way to reuse tasks?

You can reuse m.playbackSessionTask task. Just don't create new for m.playbackSessionTask
or
use the following to be sure previously used task was closed:
m.playbackSessionTask.control = "DONE"


It will finished task thread.
0 Kudos
tim_beynart
Level 7

Re: What is the proper way to reuse tasks?

is DONE new in 7.6+? I though the only valid control setter values were INIT, RUN, or STOP
edit: Never mind, it's been there all along.
Another question about tasks... why is the control value required to be UPPERCASE when set, but is lowercase when get??
0 Kudos