我正在研究RxJava,为此我正在使用SQLite,编写一个帮助类SQLiteUtils
,以便更容易地处理异步ContentResolver查询。例如,这是QueryInBackground
方法:
static
public <T> Observable<T> queryInBackground(
final ContentResolver cr,
final Uri uri,
final String[] projection,
final String selection,
final String[] selectionArgs,
final String sortOrder,
final CursorHandler<T> ch) {
return Observable.create(new Observable.OnSubscribe<T>() {
@Override
public void call(Subscriber<? super T> observer) {
if (!observer.isUnsubscribed()) {
Cursor cursor = null;
try {
cursor = cr.query(uri, projection, selection, selectionArgs, sortOrder);
if (cursor != null && cursor.getCount() > 0) {
while (cursor.moveToNext()) {
observer.onNext(ch.handle(cursor));
}
}
observer.onCompleted();
} catch (Exception err) {
observer.onError(err);
} finally {
if (cursor != null) cursor.close();
}
}
}
}).subscribeOn(Schedulers.computation());
}
其中CursorHandler
是接口:
/**
* Implementations of this interface convert Cursor into other objects.
*
* @param <T> the target type the input Cursor will be converted to.
*/
public interface CursorHandler<T> {
T handle(Cursor cu) throws SQLException;
}
我读过有关调度器的文档,但我不太确定Schedulers.computation()
是否是正确的选择。
如果我想为基本的httpurlconnection
操作实现类似的操作,我应该选择哪种调度程序?schedulers.newthread()
或schedulers.io()
,我会坚持使用schedulers.io()
...但不确定。
提前道谢。
万事如意,卢卡
根据这个答案,您应该使用schedulers.io()
。相关报价:
io()由一个无界线程池支持,您可以将它用于非计算密集型任务,即不会给CPU带来太多负载的任务。因此,与文件系统的交互、与不同主机上的数据库或服务的交互都是很好的例子。
问题内容: 嗨,我正在使用代码,您能否让我知道为什么签名验证无效? Java签署者将 BouncyCastleProvider 与 SHA1withRSA 结合 使用,这是dotnet验证代码…。 用于签署签名数据的Java代码: 这是C#中用于签名和验证的代码: 问题答案: 这里有几个问题。 您正在对签名进行Base64解码,但不是Base64编码,而是十六进制编码。 第二个问题是方法中的(这是
本文向大家介绍iOS中SQLite的操作方法,包括了iOS中SQLite的操作方法的使用技巧和注意事项,需要的朋友参考一下 今天终于花了点时间把之前项目中使用到的对SQLite操作的方法整理一下并上传到github上,下载地址:(https://github.com/peanutNote/QYSQLiteManagerDemo.git)。 与其他第三方目的一样,主要是为了使代码中有关对SQLite
基本上,以原子方式,我需要执行以下操作: 从数据库读取, 根据,将存储到数据库中。 都是1。和2。应该是单个原子事务的一部分。 有没有一个简单的方法可以做到这一点?
本文向大家介绍Python操作SQLite简明教程,包括了Python操作SQLite简明教程的使用技巧和注意事项,需要的朋友参考一下 一、SQLite简介 SQLite是一个包含在C库中的轻量级数据库。它并不需要独立的维护进程,并且允许使用非标准变体(nonstandard variant)的SQL查询语句来访问数据库。一些应用可是使用SQLite保存内部数据。它也可以在构建应用原型的时候使用,
问题内容: 我试图用javafxports编写一个简单的sqlite代码。 build.gradle: 我的JavaCode: 我用./gradlew launchIOSDevice发送它并得到以下错误: 有人可以帮我吗,如何在代码中提供权限,以便创建sqlite数据库? 谢谢 问题答案: 正如@ItachiUchiha指出的,您的问题与您尝试创建数据库的位置有关: 您提供的URL可能在您的桌面上
本文向大家介绍Python 处理带有 \u 的字符串操作,包括了Python 处理带有 \u 的字符串操作的使用技巧和注意事项,需要的朋友参考一下 最近遇到一个头疼的问题,用socket接收到一个字符串 格式如下: {“trade_status”: {“desc”: “\u30106\u3011 - \u8d22\u52a1\u7ed3\u7b97\u5df2\u5b8c\u6210 “}}/en