まず下記設定内容で、やった場合に何故かデータが永続化されない。。
build.gradle(app)
〜省略〜
apply plugin: 'realm-android'
〜省略〜
build.gradle(project)
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.3'
classpath "io.realm:realm-gradle-plugin:1.1.0"
}
}
〜省略〜
MainActivity.java
public class MainActivity extends AppCompatActivity {
private Realm realm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Configure Realm for the application
RealmConfiguration realmConfiguration = new RealmConfiguration.Builder(this).build();
Realm.deleteRealm(realmConfiguration); // Clean slate
Realm.setDefaultConfiguration(realmConfiguration); // Make this Realm the default
このRealmの設定情報で、適宜データを追加。
アプリを起動中はデータが存在するが、アプリを戻るなどで停止や、
クラッシュして停止し、
再度起動するとデータが 0件。。。
Realのサンプルソースとにらめっこして、
Realm.closeのタイミングをずらしたりしたが、関係なく。
色々やっていると、なんと。。
初回起動する際に指定するActivityが
MainActivity.java
public class MainActivity extends AppCompatActivity {
で
AndroidManifest.xml
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
と application:nameの指定がなく、
application:nameで指定するjavaファイルを
extends Applicationじゃない点を。
改善してみると。
なんと無事永続化!!!できました。汗
なんじゃこれw
下記のようにしたら改善されました。(泣)
AndroidManifest.xml
<application
android:name=".MyApplication" <!-- ←★ちゃんと指定 -->
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
MyApplication.java
import android.app.Application;
import io.realm.Realm;
import io.realm.RealmConfiguration;
// ★extends Applicationに!!★
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// Configure Realm for the application
RealmConfiguration realmConfiguration = new RealmConfiguration.Builder(this).build();
Realm.deleteRealm(realmConfiguration); // Clean slate
Realm.setDefaultConfiguration(realmConfiguration); // Make this Realm the default
}
}
で、あとで気づいた。。
ちゃんと書いてあった。汗