Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class RealmManager {
- private static RealmManager instance;
- private final ThreadLocal<Realm> localRealm = new ThreadLocal<>();
- RealmManager(){}
- public synchronized static RealmManager getInstance(){
- if(instance == null){
- instance = new RealmManager();
- }
- return instance;
- }
- public Realm openLocalInstance() {
- Realm realm = Realm.getDefaultInstance();
- if(localRealm.get() == null) {
- localRealm.set(realm);
- }
- return realm;
- }
- public Realm getLocalInstance() {
- Realm realm = localRealm.get();
- if(realm == null) {
- throw new IllegalStateException("No open Realms were found on this thread.");
- }
- return realm;
- }
- public void closeLocalInstance() {
- Realm realm = localRealm.get();
- if(realm == null) {
- throw new IllegalStateException(
- "Cannot close a Realm that is not open.");
- }
- realm.close();
- if(Realm.getLocalInstanceCount(Realm.getDefaultConfiguration()) <= 0) {
- localRealm.set(null);
- }
- }
- public void storePreferenceDao(int userID, String rank){
- final PreferenceDao preferenceDao = new PreferenceDao();
- preferenceDao.setUserID(userID);
- preferenceDao.setRank(rank);
- openLocalInstance();
- getLocalInstance().executeTransactionAsync(new Realm.Transaction() {
- @Override
- public void execute(Realm realm) {
- realm.copyToRealmOrUpdate(preferenceDao);
- }
- }, new Realm.Transaction.OnSuccess(){
- @Override
- public void onSuccess(){
- System.out.println("Data is stored successfully!");
- }
- }, new Realm.Transaction.OnError(){
- @Override
- public void onError(Throwable error){
- System.out.println("There is an error in storePreferenceDao()");
- }
- });
- closeLocalInstance();
- }
- RealmManager.getInstance().storePreferenceDao(123, "Alpaca");
- public class MySingleton {
- private static MySingleton sMySingleton;
- //private constructor.
- private MySingleton() {
- if (sMySingleton != null){
- throw new RuntimeException("Use getInstance() for the instance");
- }
- }
- public synchronized static MySingleton getInstance() {
- if (sMySingleton == null){
- sMySingleton = new MySingleton();
- }
- return sMySingleton;
- }
- }
- public class BaseActivity extends AppCompatActivity {
- public Realm realm;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_base);
- realm = Realm.getDefaultInstance();
- }
- }
- public class MainActivity extends BaseActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- //Here you can directly access realm object and perform your task
- realm.where()//just example
- }
- @Override
- protected void onDestroy() {
- super.onDestroy();
- if(realm!=null)
- realm.close();
- //Don't forget to close realm object
- }
- }
Add Comment
Please, Sign In to add comment