RxWorker এ থ্রেডিং
সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন
আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।
আমরা WorkManager এবং RxJava এর মধ্যে ইন্টারঅপারেবিলিটি প্রদান করি। শুরু করতে, আপনার গ্রেডল ফাইলে work-runtime
ছাড়াও work-rxjava3
নির্ভরতা অন্তর্ভুক্ত করুন। এছাড়াও একটি work-rxjava2
নির্ভরতা রয়েছে যা পরিবর্তে rxjava2 সমর্থন করে।
তারপর, Worker
প্রসারিত করার পরিবর্তে, আপনার RxWorker
প্রসারিত করা উচিত। পরিশেষে RxWorker.createWork()
পদ্ধতিটি ওভাররাইড করে একটি Single<Result>
ফেরত পাঠান যা আপনার কার্য সম্পাদনের Result
নির্দেশ করে, নিম্নরূপ:
কোটলিন
class RxDownloadWorker(
context: Context,
params: WorkerParameters
) : RxWorker(context, params) {
override fun createWork(): Single<Result> {
return Observable.range(0, 100)
.flatMap { download("https://www.example.com") }
.toList()
.map { Result.success() }
}
}
জাভা
public class RxDownloadWorker extends RxWorker {
public RxDownloadWorker(Context context, WorkerParameters params) {
super(context, params);
}
@NonNull
@Override
public Single<Result> createWork() {
return Observable.range(0, 100)
.flatMap { download("https://www.example.com") }
.toList()
.map { Result.success() };
}
}
উল্লেখ্য যে RxWorker.createWork()
কে প্রধান থ্রেডে কল করা হয়, কিন্তু রিটার্ন মানটি ডিফল্টরূপে একটি ব্যাকগ্রাউন্ড থ্রেডে সাবস্ক্রাইব করা হয়। আপনি সাবস্ক্রাইবিং থ্রেড পরিবর্তন করতে RxWorker.getBackgroundScheduler()
ওভাররাইড করতে পারেন।
যখন একটি RxWorker
onStopped()
হয়, তখন সাবস্ক্রিপশনটি নিষ্পত্তি হয়ে যাবে, তাই আপনাকে কোনো বিশেষ উপায়ে কাজের স্টপেজগুলি পরিচালনা করতে হবে না।
এই পৃষ্ঠার কন্টেন্ট ও কোডের নমুনাগুলি Content License-এ বর্ণিত লাইসেন্সের অধীনস্থ। Java এবং OpenJDK হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।
2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।
[[["সহজে বোঝা যায়","easyToUnderstand","thumb-up"],["আমার সমস্যার সমাধান হয়েছে","solvedMyProblem","thumb-up"],["অন্যান্য","otherUp","thumb-up"]],[["এতে আমার প্রয়োজনীয় তথ্য নেই","missingTheInformationINeed","thumb-down"],["খুব জটিল / অনেক ধাপ","tooComplicatedTooManySteps","thumb-down"],["পুরনো","outOfDate","thumb-down"],["অনুবাদ সংক্রান্ত সমস্যা","translationIssue","thumb-down"],["নমুনা / কোড সংক্রান্ত সমস্যা","samplesCodeIssue","thumb-down"],["অন্যান্য","otherDown","thumb-down"]],["2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।"],[],[],null,["# Threading in RxWorker\n\nWe provide interoperability between WorkManager and RxJava. To get started,\ninclude [`work-rxjava3` dependency in addition to `work-runtime`](/jetpack/androidx/releases/work#declaring_dependencies) in your gradle file.\nThere is also a `work-rxjava2` dependency that supports rxjava2 instead.\n\nThen, instead of extending `Worker`, you should extend`RxWorker`. Finally\noverride the [`RxWorker.createWork()`](/reference/androidx/work/RxWorker#createWork())\nmethod to return a `Single\u003cResult\u003e` indicating the [`Result`](/reference/androidx/work/ListenableWorker.Result) of your execution, as\nfollows: \n\n### Kotlin\n\n```kotlin\nclass RxDownloadWorker(\n context: Context,\n params: WorkerParameters\n) : RxWorker(context, params) {\n override fun createWork(): Single\u003cResult\u003e {\n return Observable.range(0, 100)\n .flatMap { download(\"https://www.example.com\") }\n .toList()\n .map { Result.success() }\n }\n}\n```\n\n### Java\n\n```java\npublic class RxDownloadWorker extends RxWorker {\n\n public RxDownloadWorker(Context context, WorkerParameters params) {\n super(context, params);\n }\n\n @NonNull\n @Override\n public Single\u003cResult\u003e createWork() {\n return Observable.range(0, 100)\n .flatMap { download(\"https://www.example.com\") }\n .toList()\n .map { Result.success() };\n }\n}\n```\n\nNote that `RxWorker.createWork()` is *called* on the main thread, but the return\nvalue is *subscribed* on a background thread by default. You can override [`RxWorker.getBackgroundScheduler()`](/reference/androidx/work/RxWorker#getBackgroundScheduler()) to change the\nsubscribing thread.\n\nWhen an `RxWorker` is `onStopped()`, the subscription will get disposed of, so\nyou don't need to handle [work stoppages](/topic/libraries/architecture/workmanager/how-to/managing-work#cancelling) in any special way."]]