Android 领域应用程序太大了
我的android领域数据库大小为20MB+。我创建了一个简单的应用程序,从网络中加载20个项目并保存。为什么我的应用程序这么大 仅配置:Android 领域应用程序太大了,android,realm,Android,Realm,我的android领域数据库大小为20MB+。我创建了一个简单的应用程序,从网络中加载20个项目并保存。为什么我的应用程序这么大 仅配置: Realm.init(this); Realm.setDefaultConfiguration(new RealmConfiguration.Builder() .deleteRealmIfMigrationNeeded() .name("database.db") .build
Realm.init(this);
Realm.setDefaultConfiguration(new RealmConfiguration.Builder()
.deleteRealmIfMigrationNeeded()
.name("database.db")
.build());
从网络加载数据的方法:
public void loadMovies() {
if (AppUtil.isNetworkConnectionAvailable()) {
Timber.d("available");
apiInterface.getAllMovies()
.subscribeOn(Schedulers.io())
.doOnNext(request -> {
List<Movie> movies = request.getMovies();
for (int i = 0; i < movies.size(); i++) {
Timber.d("movie: %s", movies.get(i).toString());
movieDao.addMovie(movies.get(i));
}
})
.observeOn(AndroidSchedulers.mainThread())
.subscribe(request -> {
//completed
});
}
}
应该是:
.doOnNext(request -> {
movieDao.addMovies(request.getMovies());
})
及
public void addMovies(列出电影){
try(Realm-Realm=Realm.getDefaultInstance()){
realm.executeTransaction(r->r.insertOrUpdate(movies));
}
}
我找到了问题的答案:
和其他网站:
您保存数据的地方确实比配置更为相关。我是否应该在通过rxJava加载数据的地方添加一些代码,以及使用copyToRealmOrUpdate()的方法?是的,这应该会有帮助好的,我更新了问题。好的,谢谢。但它仍然很大。我在另一台设备上检查了应用程序,它的大小是12MB。
.doOnNext(request -> {
movieDao.addMovies(request.getMovies());
})
public void addMovies(List<Movie> movies) {
try(Realm realm = Realm.getDefaultInstance()) {
realm.executeTransaction(r -> r.insertOrUpdate(movies));
}
}