Loved the pace, not too slow but not making a lot of assumptions about what the viewer might be watching. I've been using WorkManager for some time now and still found the pace on-point! Allowed me to follow with ease. Something I noticed: The mic seems to be attached to the table where the keyboard is, it is a bit annoying to hear the "bumps" especially with headphones. TY for the great content as always.
I'm not sure you picked the correct example. Seems to me that blurring an image is a rarely deferable use case. Explanation was great, that example tho, not sure...
It may not be a deferable use case, but it can take a long time to process the image. So, you can use workmanager to manage the blurring on the background without any kind of risk of the computation been interrupted in the middle and make the app usable while it is processing and saving the image.
Because that's what WorkManager requests. The application context lives longer than your activity context. And yes, you should be passing in an application context into your Worker classes as well.
Some one can give me a use case where I can't execute a long running task simply using a coroutine instead of work manager? I'm still able to decide which thread to use with coroutines
Corutines uses application lifecycle, while work manager doesn't, managing coroutine can be difficult and as fair threading goes you can use local scoped coroutine or fork pool or parallel work, for any long running task that doesn't require user interaction, work manager and alarm manager (for period task) are best apis
The thing i don't really like about this API is that the data passed around are persisted, so you'll need to handle data migration of risk losing pending work requests
hello Sir/Mam work manager is not working in all Chinese Phones Problem is that workManager is only working when app is in foreground or background as soon as user removes app from task manager than the work which I posted in OneTimeRequest or PeriodicRequest it is not running any more. It is working in samsung and emulator but not on realme,readmi,vivo,infinix,xiomi etc chinease mobiles based on android. Please help
@mooingturtle Thanks for the proper guidelines. The way that you have explained about the each features and the code is awesome. The best tutorial video loved it.
If I start a WorkManager from a service, what will be the App Standby Bucket? I want to write an accessibility tool, which is activated as a service, but my app isn't actively running in the foreground - no activity visible. Now, I'm afraid, if the WorkManager can be deferred up to 24h, which would be a real bad thing.
The app standby bucket depends on your app's usage by the user and not where you start WorkManager from. A11y tools can request exemptions from system battery optimizations.
@@keyboardsurfer So, my app will always be in the worst state, because it’s just a tool running in the background. The UI will be seen only once a month, I believe. That’s bad for the user experience, if you are writing an accessibility tool. Are you sure? And to force the user to exclude my app isn‘t good practice.
@@mars3142 For many apps having the user request the exemption is necessary. When your app runs as accessibility service you get some special permissions, i.e. act on the users behalf. This means it should be treated as being in the foreground.
thanks for the video but i run into following problem: in the dowork method i can read firestore document successfully BUT IF I execute code in the onsuccessListener callback it never runs. check the following snippet and please give me some hints . thank you @NonNull @Override public Result doWork() { String firebaseUserId = getInputData().getString("id"); FirebaseFirestore.getInstance().collection("users")document(firebaseUserId).get().addOnSuccessListener(new OnSuccessListener() { @Override public void onSuccess(DocumentSnapshot documentSnapshot) { Users user = documentSnapshot.toObject(Users.class); //Why following tasks are never executed???? how to solve this problem? // new StoreUserTask(user); //-> this is an AsyncTask // doExecuteInsertUserExecutorTask(user); //-> this call run on Executors.newSingleThreadExecutor(); } }); }
If your app is not running and not restricted by the system or through user's choice, then WorkManager will execute your request on a best effort basis.
This is the FIRST video where someone explains what the program does line by line instead of just typing it down. Kudos!
Thanks! Glad you enjoyed this format.
Same love it
Thanks! I’ve been playing with work managers over the last 2 weeks. I would love more info on periodic tasks when the app is not running. Thanks!
Loved the pace, not too slow but not making a lot of assumptions about what the viewer might be watching.
I've been using WorkManager for some time now and still found the pace on-point! Allowed me to follow with ease.
Something I noticed: The mic seems to be attached to the table where the keyboard is, it is a bit annoying to hear the "bumps" especially with headphones.
TY for the great content as always.
Thanks for the feedback! Will work on avoiding those 'bump' noises in future videos.
I'm not sure you picked the correct example. Seems to me that blurring an image is a rarely deferable use case. Explanation was great, that example tho, not sure...
It may not be a deferable use case, but it can take a long time to process the image. So, you can use workmanager to manage the blurring on the background without any kind of risk of the computation been interrupted in the middle and make the app usable while it is processing and saving the image.
WorkManager nowadays is not only about deferrable or periodic work. It is a great solution for any task that's long running.
i am not sure how image bluring logic works ..but this video realy explained use case of work manager in best way
and good, that you leave the workmanager documentation thanks so much
Never used work management before, but I'll try
go for it
Great video, very well explained, even for someone who's never used workmanager myself I could follow along easily!
Great explanation! Thank you!
Is it possible to get result from the workmanager via Flow instead of livedata?
Does this mean that WorkManager is replacing multithreading solutions like Coroutines, RxJava, etc.?
No. WorkManager is your gateway to making long running operations easy. You'll write your async code using Coroutines or others.
Why do you use the applicationContext instead of the context in the constructor? Should we do that as well?
Because that's what WorkManager requests. The application context lives longer than your activity context.
And yes, you should be passing in an application context into your Worker classes as well.
@@keyboardsurfer thank you!
If you use Activity context, you will be leaking your app left and right
Some one can give me a use case where I can't execute a long running task simply using a coroutine instead of work manager? I'm still able to decide which thread to use with coroutines
Corutines uses application lifecycle, while work manager doesn't, managing coroutine can be difficult and as fair threading goes you can use local scoped coroutine or fork pool or parallel work, for any long running task that doesn't require user interaction, work manager and alarm manager (for period task) are best apis
The thing i don't really like about this API is that the data passed around are persisted, so you'll need to handle data migration of risk losing pending work requests
hello Sir/Mam work manager is not working in all Chinese Phones
Problem is that workManager is only working when app is in foreground or background as soon as user removes app from task manager than the work which I posted in OneTimeRequest or PeriodicRequest it is not running any more.
It is working in samsung and emulator but not on realme,readmi,vivo,infinix,xiomi etc chinease mobiles based on android.
Please help
@mooingturtle Thanks for the proper guidelines. The way that you have explained about the each features and the code is awesome. The best tutorial video loved it.
Como usar o Android (Xiaomi como plataforma de navegação" sem ser engolido pelos concorrentes...
If I start a WorkManager from a service, what will be the App Standby Bucket? I want to write an accessibility tool, which is activated as a service, but my app isn't actively running in the foreground - no activity visible. Now, I'm afraid, if the WorkManager can be deferred up to 24h, which would be a real bad thing.
The app standby bucket depends on your app's usage by the user and not where you start WorkManager from.
A11y tools can request exemptions from system battery optimizations.
@@keyboardsurfer So, my app will always be in the worst state, because it’s just a tool running in the background. The UI will be seen only once a month, I believe. That’s bad for the user experience, if you are writing an accessibility tool. Are you sure? And to force the user to exclude my app isn‘t good practice.
@@mars3142 For many apps having the user request the exemption is necessary. When your app runs as accessibility service you get some special permissions, i.e. act on the users behalf. This means it should be treated as being in the foreground.
thanks for the video but i run into following problem: in the dowork method i can read firestore document successfully BUT IF I execute code in the onsuccessListener callback it never runs. check the following snippet and please give me some hints . thank you @NonNull
@Override
public Result doWork() {
String firebaseUserId = getInputData().getString("id");
FirebaseFirestore.getInstance().collection("users")document(firebaseUserId).get().addOnSuccessListener(new OnSuccessListener() {
@Override
public void onSuccess(DocumentSnapshot documentSnapshot) {
Users user = documentSnapshot.toObject(Users.class);
//Why following tasks are never executed???? how to solve this problem?
// new StoreUserTask(user); //-> this is an AsyncTask
// doExecuteInsertUserExecutorTask(user); //-> this call run on Executors.newSingleThreadExecutor();
}
});
}
What is the best way to test work manager functionality?
Make sure to check back in on the playlist soon. We've got testing covered in a later video.
is it legit to pass application to Viewmodel?
Please 😭, is this video available in Java language
Will the work manager request executes if app is not running at scheduled time?
Yes
If your app is not running and not restricted by the system or through user's choice, then WorkManager will execute your request on a best effort basis.
Great information thanks
This is amazing.
Nice code!!
excellent video
Very good, and informing
👍👍
Inhereitance all over the place again... When do you plan to start creating clean APIs?
first