패키지 io.realm
Realm.Callback 클래스
- java.lang.Object
-
- io.realm.BaseRealm.InstanceCallback<Realm>
-
- io.realm.Realm.Callback
-
- 클래스를 둘러싸는 경우:
- Realm
public abstract static class Realm.Callback extends io.realm.BaseRealm.InstanceCallback<Realm>
Realm.getInstanceAsync(RealmConfiguration, Realm.Callback)
또는DynamicRealm.getInstanceAsync(RealmConfiguration, DynamicRealm.Callback)
을 사용하여 Realm을 비동기적으로 로드한 결과를 보고할 때 사용되는 콜백입니다.프로세스에서 첫 Realm 인스턴스를 생성하기 전에, 스키마 생성 또는 유효성 검사, 필요한 경우 마이그레이션 실행,
RealmConfiguration.Builder.assetFile(String)
이 제공된 경우 자산 파일 복사, 필요한 경우RealmConfiguration.Builder.initialData(Realm.Transaction)
실행과 같은 몇 가지 초기화 작업을 수행해야 합니다. 이 작업은 시간이 걸리고 호출자 스레드를 잠시 차단할 수 있습니다.getInstance()
호출이 메인 스레드를 차단하는 것을 방지하려면 대신getInstanceAsync()
을(를) 사용하여 백그라운드 스레드에서 초기화 작업을 수행하고 Realm 인스턴스를 호출자 스레드에 전달할 수 있습니다.일반적으로 이 메서드는 UI 스레드가 최대한 차단되어야 하기 때문에 대부분 유용합니다. 다른 이벤트 루프 스레드나 콜백을 지원하지 않는 다른 스레드에서는 표준
getInstance()
를 사용해도 괜찮습니다.다음은 앱이 첫 번째 활동을 시작할 때
getInstanceAsync()
을 사용하는 예입니다.public class MainActivity extends Activity { private Realm realm = null; private RealmAsyncTask realmAsyncTask; private static RealmConfiguration config = new RealmConfiguration.Builder() .schema(42) .migration(new MyMigration()) // Potentially lengthy migration .build(); \@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_main); realmAsyncTask = Realm.getInstanceAsync(config, new Callback() { \@Override public void onSuccess(Realm realm) { if (isDestroyed()) { // If the activity is destroyed, the Realm instance should be closed immediately to avoid leaks. // Or you can call realmAsyncTask.cancel() in onDestroy() to stop callback delivery. realm.close(); } else { MainActivity.this.realm = realm; // Remove the spinner and start the real UI. } } }); // Show a spinner before Realm instance returned by the callback. } \@Override protected void onDestroy() { super.onDestroy(); if (realm != null) { realm.close(); realm = null; } else { // Calling cancel() on the thread where getInstanceAsync was called on to stop the callback delivery. // Otherwise you need to check if the activity is destroyed to close in the onSuccess() properly. realmAsyncTask.cancel(); } } }
-
-
생성자 요약
생성자 Constructor 설명 Callback()
-