小编chr*_*lin的帖子


正确的方法来清除Realm表/数据库?

我有一个包含~30个字段的领域对象,在添加和删除多个对象后,似乎领域占用了相当多的空间.分配空间的大小似乎呈指数级增长:

10*(加100 +全部删除)= 4 mb数据

15*(加100 +全部删除)= 33 mb数据

20*(加100 +全部删除)= 91 mb数据

25*(加100 +全部删除)= 179 mb数据

图片

此时,data\data\app_folder\files\default.realm中的文件本身为200 MB.

现在这个严重的问题可能是因为我没有做正确的事情.在我每次插入之前

Realm realm = Realm.getInstance(context);

realm.beginTransaction();
realm.where(RealmSubmission.class).findAll().clear();
// if i use realm.allObjects(RealmSubmission.class).clear(); the leak is even bigger, i get to 170mb Data with 20*(add 100 + remove all) even though both calls do the same by looking at their semantics.
realm.commitTransaction();
Run Code Online (Sandbox Code Playgroud)

将项添加到领域中如下所示:

    for (Submission submission : submissionList){
        realm.beginTransaction();

        RealmSubmission realmSubmission = realm.createObject(RealmSubmission.class);
        RealmObjectUtils.copySubmission(realmSubmission, submission);

        realm.commitTransaction();
    }
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

java android realm

17
推荐指数
3
解决办法
3万
查看次数

如何使用Dagger2将依赖项注入任何类型的对象?

根据http://konmik.github.io/snorkeling-with-dagger-2.html我可以添加

inject(Anything anything)
Run Code Online (Sandbox Code Playgroud)

进入AppComponent.java,但这对我来说不起作用,在文章示例中:

@Singleton
@Component(modules = AppModule.class)
public interface AppComponent {
    void inject(MainActivity activity);
    void inject(MainFragment fragment);
    void inject(MainToolbarView view);
}
Run Code Online (Sandbox Code Playgroud)

如果我尝试将依赖项注入到我的片段中,则注入的成员保持为空.我在这里错过了什么明显的错误?

相关来源:

ApplicationComponent.java

@Singleton
@Component(
    modules = ApplicationModule.class
)
public interface ApplicationComponent {
    void injectApplication(BaseApplication application);

    Prefs providePrefs();
}
Run Code Online (Sandbox Code Playgroud)

ApplicationModule.java

@Module
public class ApplicationModule {
    private final Application application;

    public ApplicationModule(Application application) {
        this.application = application;
    }

    @Provides
    Application application() {
        return application;
    }

    @Singleton
    @Provides
    Prefs providePrefs() {
        return Prefs.with(application);
    }
}
Run Code Online (Sandbox Code Playgroud)

ActivityComponent.java

@AScope
@Component( …
Run Code Online (Sandbox Code Playgroud)

java android dependency-injection dagger-2

12
推荐指数
1
解决办法
5976
查看次数