这个问题在这里已有答案:
插入List到Realm NullPointerException
时抛出。请帮助我。
您能否建议我在Android中使用Realm DB Management进行最佳实践
我的代码:
public class DrinksFragment
extends Fragment {
private Realm realm;
@Override
public View onCreateView(
LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_drinks, container, false);
Realm.init(getActivity());
realm = Realm.getDefaultInstance();
return view;
}
public boolean drinksToDB(final List<ProductModel> productModel) {
realm.executeTransactionAsync(new Realm.Transaction() {
@Override
public void execute(Realm bgrealm) {
RealmList<ProductModel> realproductList = new RealmList<>();
realproductList.addAll(productModel);
}
}, new Realm.Transaction.OnSuccess() {
@Override
public void onSuccess() {
Log.d("REALM_DB_INSERT", "Data Inserted");
}
}, new Realm.Transaction.OnError() {
@Override
public void onError(Throwable error) {
Log.d("REALM_DB_INSERT", error.getMessage());
}
});
return true;
}
}
我建议你做这样的事情:
首先,当您打开应用程序时,init Realm只会立即执行一次:
public class StartApplication
extends Application {
@Override
public void onCreate() {
super.onCreate();
Realm.init(getApplicationContext());
}
}
然后你可以在任何地方以这种方式获得领域对象:
Realm realm = Realm.getDefaultInstance();