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

我知道这听起来很疯狂,我听起来很愚蠢,但我现在测试了20次,我对此没有其他解释,也许我做了一件非常错误的事情,或者我不知道。Android studio错误,通过添加Log.d修复?

好吧,我正在创建一个小部件,它使用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的窗口小部件提供程序来加载来自领域的数据并将其放入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 myList = new ArrayList<>();

RealmResults myResults = realm.where(Task.class).findAll();

final int myResLength = myResults.size();

Log.d("myResLength", " "+ myResLength);

for(int j = 0; 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会显示编译器simpy会在整个循环之后跳过整个循环。我不知道这是Android bug,Realm bug还是我的无知,但这是数据在窗口小部件上加载的唯一方式。现在这对我来说似乎是不可靠的选择,所以我需要一些关于它的解释。

+1

你需要**在'onGetViewFactory'中调用'Realm.init()'吗?因为这意味着一些超级棘手的事情正在发生,例如多进程。 –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值