JobserviceでRealmを使いたいのですが、うまく使えておらず方法を知りたいです。
kotlin
1class Job() : JobService() { 2 3 private lateinit var realm: Realm 4 5 override fun onStartJob(params: JobParameters?): Boolean { 6 realm = Realm.getDefaultInstance() 7 8 blogs = realm.where<BlogModel>().findAll()!! 9 setting = realm.where<SettingModel>().findFirst()!! 10 11 val count = Constants.DisplayCount.values().filter { it.code == setting!!.displayCountCode }.map { it.count }.get(0) 12}
定期的に実行するJobでRealmを使おうと思ったのですが、nullが取得され、後続の処理でNullPointerExceptionが発生してしまいます。
下記のように変えてみても結果は同じでした。
kotlin
1class PollingJob() : JobService() { 2 3 private lateinit var realm: Realm 4 5 override fun onStartJob(params: JobParameters?): Boolean { 6 realm = Realm.getDefaultInstance() 7 var blogs : RealmResults<BlogModel>? = null 8 var setting : SettingModel? = null 9 realm.executeTransactionAsync { 10 blogs = realm.where<BlogModel>().findAll()!! 11 setting = realm.where<SettingModel>().findFirst()!! 12 } 13 14 val count = Constants.DisplayCount.values().filter { it.code == setting!!.displayCountCode }.map { it.count }.get(0) 15}
Realmはバックグラウンドで実行するJobでは使えないものでしょうか?
もしくはやり方が間違っているのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。