WorkManager: Basics - MAD Skills

Поділитися
Вставка
  • Опубліковано 8 сер 2024
  • Welcome to the first episode of the WorkManager series for Modern Android Development Skills. Android Developer Relations Engineer Caren Chang will give us a closer look on how to get started with using the WorkManager APIs.
    WorkManager documentation → goo.gle/2PlgUfY
    WorkManager codelab → goo.gle/37UrVve
    Catch more WorkManager for MAD Skills → goo.gle/workmanager
    Watch more MAD Skills episodes → goo.gle/madskills
    Subscribe to Android Developers → goo.gle/AndroidDevs
    #WorkManager #AndroidDevelopers #MADSkills
  • Наука та технологія

КОМЕНТАРІ • 48

  • @jonplaud
    @jonplaud 3 роки тому +16

    This is the FIRST video where someone explains what the program does line by line instead of just typing it down. Kudos!

  • @jswaby
    @jswaby 3 роки тому +9

    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!

  • @cleofaspintolimalima1627
    @cleofaspintolimalima1627 3 роки тому +1

    and good, that you leave the workmanager documentation thanks so much

  • @foivosstamopoulos4106
    @foivosstamopoulos4106 3 роки тому +4

    Great explanation! Thank you!

  • @joaquimley
    @joaquimley 3 роки тому +1

    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.

    • @mooingturtle
      @mooingturtle 3 роки тому +2

      Thanks for the feedback! Will work on avoiding those 'bump' noises in future videos.

  • @akashdeepwadhwa5828
    @akashdeepwadhwa5828 3 роки тому +1

    i am not sure how image bluring logic works ..but this video realy explained use case of work manager in best way

  • @GakisStylianos
    @GakisStylianos 3 роки тому +3

    Great video, very well explained, even for someone who's never used workmanager myself I could follow along easily!

  • @navczydev
    @navczydev 3 роки тому

    Great information thanks

  • @mathankumarIT
    @mathankumarIT 6 місяців тому

    @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.

  • @LeftyRC
    @LeftyRC 3 роки тому

    This is amazing.

  • @GN9K71
    @GN9K71 3 роки тому

    Is it possible to get result from the workmanager via Flow instead of livedata?

  • @duduskateboarddudu
    @duduskateboarddudu 3 роки тому +1

    Nice code!!

  • @panemampojmaperla
    @panemampojmaperla 3 роки тому +14

    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...

    • @magnatroz
      @magnatroz 3 роки тому +2

      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.

    • @keyboardsurfer
      @keyboardsurfer 3 роки тому +2

      WorkManager nowadays is not only about deferrable or periodic work. It is a great solution for any task that's long running.

  • @annettejones5213
    @annettejones5213 3 роки тому +1

    Never used work management before, but I'll try

  • @RinoSss
    @RinoSss 3 роки тому +1

    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

    • @satyamsharma8240
      @satyamsharma8240 3 роки тому +1

      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

  • @ARIHANTJAIN27
    @ARIHANTJAIN27 3 роки тому

    What is the best way to test work manager functionality?

    • @keyboardsurfer
      @keyboardsurfer 3 роки тому

      Make sure to check back in on the playlist soon. We've got testing covered in a later video.

  • @unistern
    @unistern 3 роки тому

    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();
    }
    });
    }

  • @SoulReaperDan1
    @SoulReaperDan1 3 роки тому

    Why do you use the applicationContext instead of the context in the constructor? Should we do that as well?

    • @keyboardsurfer
      @keyboardsurfer 3 роки тому +1

      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.

    • @SoulReaperDan1
      @SoulReaperDan1 3 роки тому

      @@keyboardsurfer thank you!

    • @jimpauloovejera2599
      @jimpauloovejera2599 3 роки тому +1

      If you use Activity context, you will be leaking your app left and right

  • @ahmedmohammed9395
    @ahmedmohammed9395 3 роки тому

    Does this mean that WorkManager is replacing multithreading solutions like Coroutines, RxJava, etc.?

    • @keyboardsurfer
      @keyboardsurfer 3 роки тому

      No. WorkManager is your gateway to making long running operations easy. You'll write your async code using Coroutines or others.

  • @erictsang0
    @erictsang0 3 роки тому

    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

  • @gouravrawatscience
    @gouravrawatscience Рік тому

    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

  • @joubertildefonsosilva5671
    @joubertildefonsosilva5671 2 роки тому

    Como usar o Android (Xiaomi como plataforma de navegação" sem ser engolido pelos concorrentes...

  • @skydoves
    @skydoves 3 роки тому

    👍👍

  • @mars3142
    @mars3142 3 роки тому

    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.

    • @keyboardsurfer
      @keyboardsurfer 3 роки тому

      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.

    • @mars3142
      @mars3142 3 роки тому

      @@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.

    • @keyboardsurfer
      @keyboardsurfer 3 роки тому

      ​@@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.

  • @chisomemmanuel6160
    @chisomemmanuel6160 Рік тому

    Please 😭, is this video available in Java language

  • @mkc0321
    @mkc0321 3 роки тому

    excellent video

  • @ARIHANTJAIN27
    @ARIHANTJAIN27 3 роки тому +1

    Will the work manager request executes if app is not running at scheduled time?

    • @CharanjeevSingh007
      @CharanjeevSingh007 3 роки тому

      Yes

    • @keyboardsurfer
      @keyboardsurfer 3 роки тому

      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.

  • @StraplessReligion
    @StraplessReligion 3 роки тому

    first

  • @bananasba
    @bananasba 3 роки тому

    Inhereitance all over the place again... When do you plan to start creating clean APIs?