🛠️ WorkManager - āĻ…্āϝাāύ্āĻĄ্āϰāϝ়েāĻĄে āĻŦ্āϝাāĻ•āĻ—্āϰাāωāύ্āĻĄ āĻ•াāϜ āϏāĻšāϜে āĻš্āϝাāύ্āĻĄেāϞ āĻ•āϰুāύ! 🤖

 

🛠️ WorkManager - āĻ…্āϝাāύ্āĻĄ্āϰāϝ়েāĻĄে āĻŦ্āϝাāĻ•āĻ—্āϰাāωāύ্āĻĄ āĻ•াāϜ āϏāĻšāϜে āĻš্āϝাāύ্āĻĄেāϞ āĻ•āϰুāύ! 🤖

WorkManager āĻšāϞো Android Jetpack-āĻāϰ āĻāĻ•āϟি āĻļāĻ•্āϤিāĻļাāϞী API, āϝা āĻŦ্āϝাāĻ•āĻ—্āϰাāωāύ্āĻĄ āϟাāϏ্āĻ• (āϝেāĻŽāύ āĻĄাāϟা āφāĻĒāϞোāĻĄ, āϞোāĻ•াāϞ āĻĄাāϟাāĻŦেāϏ āφāĻĒāĻĄেāϟ, āĻŦা āϏাāϰ্āĻ­াāϰ āĻĨেāĻ•ে āύāϤুāύ āĻĄাāϟা āφāύāϤে) āύিāϰাāĻĒāĻĻ āĻ“ āύিāϰ্āĻ­āϰāϝোāĻ—্āϝāĻ­াāĻŦে āϚাāϞাāϝ়।


🔍 āĻ•েāύ WorkManager āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰāĻŦেāύ?

āĻŦ্āϝাāϟাāϰি āĻ…āĻĒāϟিāĻŽাāχāϜেāĻļāύ - āĻ…্āϝাāύ্āĻĄ্āϰāϝ়েāĻĄেāϰ Doze āĻŽোāĻĄ āĻāĻŦং āĻŦ্āϝাāϟাāϰি āϏীāĻŽাāĻŦāĻĻ্āϧāϤা āĻŽাāύিāϝ়ে āĻ•াāϜ āĻ•āϰে
āĻ…āĻĢāϞাāχāύ āĻŽোāĻĄে āĻ•াāϜ āĻ•āϰāϤে āĻĒাāϰে - āχāύ্āϟাāϰāύেāϟ āύা āĻĨাāĻ•āϞেāĻ“ āĻ•াāϜ āϏāĻŽ্āĻĒāύ্āύ āĻ•āϰে
āĻĄিāĻ­াāχāϏ āϰিāϏ্āϟাāϰ্āϟ āĻšāϞেāĻ“ āĻ•াāϜ āϚাāϞু āĻĨাāĻ•ে
āĻĒূāϰ্āĻŦ āĻļāϰ্āϤ (Constraints) āϏেāϟ āĻ•āϰা āϝাāϝ় - āϝেāĻŽāύ Wi-Fi āĻ•াāύেāĻ•āĻļāύ āĻĨাāĻ•āϞে āĻ•াāϜ āϚাāϞাāύো


📌 WorkManager āĻ•িāĻ­াāĻŦে āĻ•াāϜ āĻ•āϰে?

1️⃣ āφāĻĒāύি WorkRequest āϤৈāϰি āĻ•āϰāĻŦেāύ (āĻāĻ•āϟি āύিāϰ্āĻĻিāώ্āϟ āĻ•াāϜ)
2️⃣ āĻāϟি WorkManager āĻ•ে āĻĻেāĻŦেāύ
3️⃣ WorkManager āĻŦ্āϝাāĻ•āĻ—্āϰাāωāύ্āĻĄে āĻ•াāϜāϟি āϚাāϞাāĻŦে
4️⃣ āĻ•াāϜāϟি āϏāĻĢāϞ / āĻŦ্āϝāϰ্āĻĨ / āĻĒুāύāϰা⧟ āϚেāώ্āϟা āĻšāĻŦে


💡 WorkManager āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰাāϰ āϧাāĻĒ

1️⃣ WorkManager āĻĄিāĻĒেāύ্āĻĄেāύ্āϏি āĻ…্āϝাāĻĄ āĻ•āϰুāύ

āφāĻĒāύাāϰ build.gradle (Module: app) āĻĢাāχāϞে āϝোāĻ— āĻ•āϰুāύ:

dependencies {
    implementation "androidx.work:work-runtime:2.8.1"
}

2️⃣ āĻāĻ•āϟি Worker āĻ•্āϞাāϏ āϤৈāϰি āĻ•āϰুāύ

āĻāĻ•āϟি āĻ•্āϞাāϏ āĻŦাāύিāϝ়ে Worker āĻāĻ•্āϏāϟেāύ্āĻĄ āĻ•āϰুāύ āĻāĻŦং āĻŦ্āϝাāĻ•āĻ—্āϰাāωāύ্āĻĄ āĻ•াāϜ āĻĄিāĻĢাāχāύ āĻ•āϰুāύ:

public class MyWorker extends Worker {
    public MyWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
        super(context, workerParams);
    }

    @NonNull
    @Override
    public Result doWork() {
        // 👉 āĻāĻ–াāύে āĻŦ্āϝাāĻ•āĻ—্āϰাāωāύ্āĻĄ āĻ•াāϜ āϞিāĻ–ুāύ
        Log.d("WorkManager", "āĻŦ্āϝাāĻ•āĻ—্āϰাāωāύ্āĻĄ āĻ•াāϜ āϚāϞāĻ›ে...");
        
        // ✅ āĻ•াāϜ āϏāĻĢāϞ āĻšāϞে
        return Result.success();

        // ❌ āĻ•াāϜ āĻŦ্āϝāϰ্āĻĨ āĻšāϞে
        // return Result.failure();

        // 🔄 āĻĒুāύāϰা⧟ āϚেāώ্āϟা āĻ•āϰāϤে āϚাāχāϞে
        // return Result.retry();
    }
}

3️⃣ WorkRequest āϤৈāϰি āĻ•āϰুāύ āĻ“ āϚাāϞাāύ

WorkRequest workRequest = new OneTimeWorkRequest.Builder(MyWorker.class).build();
WorkManager.getInstance(context).enqueue(workRequest);

āĻāϟি āĻāĻ•āĻŦাāϰ āĻ•াāϜ āĻ•āϰāĻŦে। āϝāĻĻি āφāĻĒāύি āĻŦাāϰāĻŦাāϰ āĻ•াāϜ āĻ•āϰāϤে āϚাāύ, āϤাāĻšāϞে PeriodicWorkRequest āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰāϤে āĻšāĻŦে:

PeriodicWorkRequest periodicWorkRequest = 
    new PeriodicWorkRequest.Builder(MyWorker.class, 15, TimeUnit.MINUTES).build();

WorkManager.getInstance(context).enqueue(periodicWorkRequest);

⚠️ āύূāύ্āϝāϤāĻŽ ā§§ā§Ģ āĻŽিāύিāϟ āĻŦ্āϝāĻŦāϧাāύে āĻ•াāϜ āϚাāϞাāύো āϝাāĻŦে।


4️⃣ āĻļāϰ্āϤ (Constraints) āϝোāĻ— āĻ•āϰুāύ

āϧāϰুāύ, āφāĻĒāύি āϚাāύ āϝে āĻ•াāϜāϟি āĻļুāϧু āϤāĻ–āύāχ āϚāϞāĻŦে āϝāĻ–āύ āĻĄিāĻ­াāχāϏ āϚাāϰ্āϜে āĻĨাāĻ•āĻŦে āĻāĻŦং Wi-Fi āĻ…āύ āĻĨাāĻ•āĻŦে:

Constraints constraints = new Constraints.Builder()
        .setRequiresCharging(true) // 🔌 āϚাāϰ্āϜিং āĻ…āĻŦāϏ্āĻĨা⧟ āĻ•াāϜ āĻ•āϰāĻŦে
        .setRequiredNetworkType(NetworkType.UNMETERED) // đŸ“ļ Wi-Fi āϤে āĻ•াāϜ āĻ•āϰāĻŦে
        .build();

WorkRequest workRequest = new OneTimeWorkRequest.Builder(MyWorker.class)
        .setConstraints(constraints)
        .build();

WorkManager.getInstance(context).enqueue(workRequest);

5️⃣ WorkStatus āϚেāĻ• āĻ•āϰা

WorkManager.getInstance(context).getWorkInfoByIdLiveData(workRequest.getId())
    .observe(this, workInfo -> {
        if (workInfo.getState() == WorkInfo.State.SUCCEEDED) {
            Log.d("WorkManager", "✅ āĻ•াāϜ āϏāĻĢāϞāĻ­াāĻŦে āϏāĻŽ্āĻĒāύ্āύ āĻšāϝ়েāĻ›ে!");
        }
    });

🚀 WorkManager āĻŦāύাāĻŽ āĻ…āύ্āϝাāύ্āϝ āĻŦ্āϝাāĻ•āĻ—্āϰাāωāύ্āĻĄ āϟুāϞ

āĻŦ্āϝাāĻ•āĻ—্āϰাāωāύ্āĻĄ āϟাāϏ্āĻ• āχāύ্āϟাāϰāύেāϟ āĻĻāϰāĻ•াāϰ? āĻŦ্āϝাāϟাāϰি āĻ…āĻĒāϟিāĻŽাāχāϜেāĻļāύ āĻ…āĻĢāϞাāχāύ āϏাāĻĒোāϰ্āϟ āĻĒুāύāϰা⧟ āϚেāώ্āϟা
Thread ❌ āύা ❌ āύেāχ ❌ āύা ❌ āύা
HandlerThread ❌ āύা ❌ āύেāχ ❌ āύা ❌ āύা
AsyncTask (deprecated) ❌ āύা ❌ āύেāχ ❌ āύা ❌ āύা
JobScheduler ✅ āĻš্āϝাঁ ✅ āĻ­াāϞো ✅ āĻš্āϝাঁ ✅ āĻš্āϝাঁ
WorkManager ✅ āĻš্āϝাঁ ✅ āϏেāϰা ✅ āĻš্āϝাঁ ✅ āĻš্āϝাঁ

đŸŽ¯ WorkManager āĻŦ্āϝāĻŦāĻšাāϰ āĻ•āϰাāϰ āϏেāϰা āϏāĻŽā§Ÿ

āĻĄাāϟা āĻŦ্āϝাāĻ•āφāĻĒ āĻ•āϰা (āϝেāĻŽāύ Firebase-āĻ āĻĄাāϟা āφāĻĒāϞোāĻĄ)
āĻŦ্āϝāĻŦāĻšাāϰāĻ•াāϰীāϰ āϞোāĻ•াāϞ āĻĄাāϟাāĻŦেāϏ āφāĻĒāĻĄেāϟ āĻ•āϰা
āύিāϝ়āĻŽিāϤ āϏাāϰ্āĻ­াāϰ āĻĨেāĻ•ে āĻĄাāϟা āĻĢেāϚ āĻ•āϰা
āĻŦ্āϝāĻŦāĻšাāϰāĻ•াāϰীāϰ āĻ•াāϜেāϰ āϞāĻ— āϏংāϰāĻ•্āώāĻŖ āĻ•āϰা


đŸ”Ĩ āϏংāĻ•্āώেāĻĒে WorkManager āĻ•ী?

✔️ āϏেāϰা āĻŦ্āϝাāĻ•āĻ—্āϰাāωāύ্āĻĄ āϟাāϏ্āĻ• āĻŽ্āϝাāύেāϜাāϰ
✔️ āĻ…্āϝাāύ্āĻĄ্āϰāϝ়েāĻĄেāϰ āĻŦ্āϝাāϟাāϰি āĻ…āĻĒāϟিāĻŽাāχāϜেāĻļāύেāϰ āϏাāĻĨে āĻŽাāύিāϝ়ে āϚāϞে
✔️ āĻ…āĻĢāϞাāχāύে āĻ•াāϜ āĻ•āϰāϤে āĻĒাāϰে, āĻĒুāύāϰা⧟ āϚেāώ্āϟা āĻ•āϰāϤে āĻĒাāϰে
✔️ āĻ…্āϝাāĻĒে āϞং-āϰাāύিং āϟাāϏ্āĻ• āϏāĻšāϜেāχ āϚাāϞাāύো āϝা⧟



🛠 Work Manager - Handle background work on Android! 🤖

Comments

Popular posts from this blog

AI (Artificial Intelligence) āϏāĻšāϜāĻ­াāĻŦে āĻŦোāĻাāϰ āϜāύ্āϝ āĻāĻ•āĻĻāĻŽ āĻŽāϏ্āϤিāώ্āĻ•-āĻŦাāύ্āϧāĻŦ āĻŦ্āϝাāĻ–্āϝা 🧠🤖

🧠 Regex āĻ•ী?

Kotlin-āĻ āĻ­েāϰিāϝ়েāĻŦāϞ āϘোāώāĻŖা āĻ•āϰাāϰ āĻĻুāχ āωāĻĒাāϝ়