【问题标题】:How can I change asynctask code to rxandroid code in android?如何在 android 中将 asynctask 代码更改为 rxandroid 代码?
【发布时间】:2020-12-21 08:25:05
【问题描述】:

Asynctask 在 Android 上不再可用 我在下面同时运行 asynctask 如何将下面的代码更改为 rxandroid?

for(int i=0;i<30;i++)
{
    new AppTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,dbCable, data);
}

【问题讨论】:

  • 您仍然可以在所有 Android 版本中使用 AsyncTask。它被弃用并不意味着它不起作用。
  • RXJava 需要一段时间来学习。不过,这是 AsyncTask 的一个不错的简单替代品:stackoverflow.com/a/58767934/7434090
  • 从Android 11开始,据说不能使用asynctask。如果我想更新到 Android 11,我应该用另一个替换 asynctask 吗?谢谢你的回答

标签: android android-asynctask


【解决方案1】:
Disposable subscription = Observable.fromCallable(new Callable() { <your work> })
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidScedulers.mainThread())
    .subscribe({ <success> }, { <error> });

稍后您需要在 onStop() 的某个地方致电 subscription.dispose() 或类似的方式,以免泄露某些内容。

Rx 是一种很酷的数据流处理机制。如果您仅将 Kotlin 协程用于后台线程工作,则应考虑使用它。您可以在此处了解有关 Rx 方法的更多信息:http://reactivex.io

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-23
    • 1970-01-01
    • 2020-03-09
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 2021-09-09
    • 1970-01-01
    相关资源
    最近更新 更多