Android 处理大数据的最佳方式

问题描述 投票:0回答:0

我们的应用程序要求每 12 小时对我们的数据库执行一次更新,这需要:下载数据 -> 处理它 -> 将它写入 Realm 数据库 目前我们的实现是一个RxJava,它在用户使用应用程序时运行在应用程序主进程上,例如:

Observable.create(emitter -> {
     // Do some heavy work, such as reading, parsing and saving a big XML file to a database
     emitter.doOnNext(); // To update the UI 
     //Eventually emitter.onComplete() when job is down

    })
    .subscribeOn(Schedulers.computation())
    .observeOn(AndroidSchedulers.mainThread())
    .doOnNext(s1 -> {
        //Update the UI here (nothing heavy, just a textview)
    })
    .observeOn(AndroidSchedulers.mainThread())
    .doOnComplete(() -> {
        //Show a message to the user that the job is done
    })
    .subscribe();

我们在使用该方法时遇到了很多低端设备内存不足的问题,我们已经尽可能多地优化了 RxJava 调度程序中数据的处理和保存,但我们正在寻找新的方法实现方法运行的方式。 例如,我们正在考虑使用 WorkManager 和 Worker 类来安排后台作业,并想知道它是否可以改善我们的数据保存过程。

欢迎就如何解决这个问题提出任何建议和想法:)

android rx-java background-process
© www.soinside.com 2019 - 2024. All rights reserved.