Android studio 错误,通过添加 Log.d 修复?

标签 android logging service android-widget realm

我知道这听起来很疯狂而且我听起来很愚蠢,但我现在已经测试了 20 次而且我对此没有其他解释,也许我做错了什么或者我不知道。

好的,我正在创建一个小部件,它使用 Realm 数据库从中加载数据。我在应用程序级别声明了 Realm 默认配置:

public class MyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Realm.init(this);
        RealmConfiguration realmConfiguration = new RealmConfiguration.Builder().build();
        Realm.setDefaultConfiguration(realmConfiguration);
    }
}

然后我在 MainActivity 中向 Realm 添加一些信息。我有运行 RemoteViewsService 的小部件提供程序以从 Realm 加载数据并将其放入 RemoteViewsFactory 中。这是 RemoteViewsService,其中有趣的部分是:

public class MyWidService extends RemoteViewsService {
    @Override
    public void onCreate() {
        super.onCreate();
    }

    @Override
    public MyWidFactory onGetViewFactory(Intent intent) {
        Log.d("MyWidService", " onGetViewFactory()<<<<<<<<<<");
        final Context context = getApplicationContext();
        Realm.init(context);
        Realm realm = Realm.getDefaultInstance();
        realm.isAutoRefresh();
        ArrayList<String> myList = new ArrayList<>();
        RealmResults<Task> myResults = realm.where(Task.class).findAll();
        final int myResLength = myResults.size();
        Log.d("myResLength", " "+ myResLength);
        for(int j = 0; j<myResLength; j++){
            myList.add(myResults.get(j).getTaskText());
            Log.d("tasks", " " + myList.get(j));
        }
        return new MyWidFactory(context, intent, myList);
    }

}

所以你看到 Log.d("myResLength", ""+ myResLength); 了吗?我不知道为什么,但是小部件只是显示没有它就没有加载数据。更重要的是,如果没有 Log.d,Android Monitor 会显示编译器会跳过它之后的整个 for 循环。我不知道这是 Android 错误、Realm 错误还是我的无知,但这是数据加载到小部件上的唯一方式。现在这对我来说似乎是不可靠的选择,所以我需要一些解释。

最佳答案

按照@EpicPandaForce 的回答,我从服务中删除了 Realm.init() 并且它现在工作正常。谢谢!

关于Android studio 错误,通过添加 Log.d 修复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45198603/

相关文章:

android - 在android中绘制和动画

java - 每天如何将日志文件存储在目录(具有当前日期的目录名称)中

c - C 程序的日志记录

java - 如何初始化 Service 类中的变量

c# - 在哪里可以找到全局 IATA 城市列表?

android - 如何在重定向到我的应用程序后关闭 Android 浏览器?

java - 如果 key 被占用,如何创建新的 SharedPreferences?

Android:Seekbar 不会一直滚动到结束

linux - read() 是否清除内核环缓冲区/proc/kmsg?

c++ - 如何从服务获取用户帐户的 Windows 特殊路径