私はAndroidアプリケーションでRealmを使用しています。CompletionEvent経由でGoogleドライブから通知を受けていますので、サービス内のレルムデータベースを変更する必要があります。Androidバックグラウンドサービスのレルム
私が手に例外がある:
RealmConfiguration realmConfiguration = new RealmConfiguration.Builder(getApplicationContext())
.deleteRealmIfMigrationNeeded()
.build();
Realm.setDefaultConfiguration(realmConfiguration);
そして、私のサービスからのonCreateで、私は自分のレルムを取得しています:私は私のApplicationクラスに次の方法を私のデフォルト構成を設定している
java.lang.IllegalStateException: Realm access from incorrect thread. Realm objects can only be accessed on the thread they were created.
mRealm = Realm.getDefaultInstance();
次に、サービスでこのレルムインスタンスを使用します。
しかし、この最後のアプリケーションを実行すると、アプリはIllegalStateExceptionを起動します。どうしてか分かりません。私はそれが私がここにそれを残すように、私はアンドロイドのマニフェストでサービスを宣言した方法とは何かを持っているかどうかわからないです:
<service android:name=".package.UploadCompletionService" android:exported="true">
<intent-filter>
<action android:name="com.google.android.gms.drive.events.HANDLE_EVENT"/>
</intent-filter>
</service>
は、バックグラウンドサービスからレルムを呼び出すことが可能ですか?私がこれを使用している方法で何が間違っていますか?
ありがとうございます。
この 'mRealm = Realm.getDefaultInstance();をonHandleIntentに移動してみてください –
これは機能します!ありがとうございました。 –