草庐IT

sms_sent_cursor

全部标签

android - 用于多部分 SMS 的 BroadcastReceiver

收到短信后,我需要将短信存储到sqlite数据库中。目前它可以很好地处理短信(160个字符),但如果我收到多部分短信,它会将短信截断为大约155个字符。这是我的代码:SmsBR.javapublicclassSmsBRextendsBroadcastReceiver{privateDBManagerdbm;@OverridepublicvoidonReceive(Contextcontext,Intentintent){Bundlebundle=intent.getExtras();if(bundle!=null){Object[]pdus=(Object[])bundle.get("

java - 没有 moveToFirst 的 Cursor.moveToNext

下一段代码会按预期工作吗?Cursorc=db.query(tableName,requestedColumns,condition,conditionParams,null,null,sortOrder);while(c.moveToNext()){//dostuffwithrows}目前我找到的示例建议在循环之前调用c.moveToFirst(),但这真的有必要吗? 最佳答案 是的,它会起作用,moveToNext实际上调用了moveToFirst 关于java-没有moveToFi

java - 没有 moveToFirst 的 Cursor.moveToNext

下一段代码会按预期工作吗?Cursorc=db.query(tableName,requestedColumns,condition,conditionParams,null,null,sortOrder);while(c.moveToNext()){//dostuffwithrows}目前我找到的示例建议在循环之前调用c.moveToFirst(),但这真的有必要吗? 最佳答案 是的,它会起作用,moveToNext实际上调用了moveToFirst 关于java-没有moveToFi

Android Cursor 最大尺寸

Android中的Cursors似乎最多只能容纳1MB的数据。从SQLite数据库中的表中提取最大行数且保持在1MB限制以下的最有效方法是什么? 最佳答案 我认为没有确定正确限制的硬性快速方法,但我查看了CursorWindow文档并发现copyStringToBuffer(introw,intcolumn,CharArrayBufferbuffer)似乎很有希望因为CharArrayBuffer有一个名为sizeCopied的整数字段,方法copyStringToBuffer获取指定行和列的文本。也许您可以从缓冲区中获取大小并为您

Android Cursor 最大尺寸

Android中的Cursors似乎最多只能容纳1MB的数据。从SQLite数据库中的表中提取最大行数且保持在1MB限制以下的最有效方法是什么? 最佳答案 我认为没有确定正确限制的硬性快速方法,但我查看了CursorWindow文档并发现copyStringToBuffer(introw,intcolumn,CharArrayBufferbuffer)似乎很有希望因为CharArrayBuffer有一个名为sizeCopied的整数字段,方法copyStringToBuffer获取指定行和列的文本。也许您可以从缓冲区中获取大小并为您

android.database.sqlite.SQLiteException : Can't downgrade database from version 58 to 55 for android sms database

当我的android应用程序尝试读取android短信数据库时,我遇到了这个崩溃。读取android短信数据库的代码类似于下面的代码fragment:StringSMS_URI="content://sms/";Uriuri=Uri.parse(SMS_URI);游标cursor=myContext.getContentResolver().query(uri,null,null,null,null);这是我的应用程序与android短信数据库交互的唯一地方。正在为短信数据库抛出降级错误。我遇到以下崩溃:java.lang.RuntimeException:android.databa

android.database.sqlite.SQLiteException : Can't downgrade database from version 58 to 55 for android sms database

当我的android应用程序尝试读取android短信数据库时,我遇到了这个崩溃。读取android短信数据库的代码类似于下面的代码fragment:StringSMS_URI="content://sms/";Uriuri=Uri.parse(SMS_URI);游标cursor=myContext.getContentResolver().query(uri,null,null,null,null);这是我的应用程序与android短信数据库交互的唯一地方。正在为短信数据库抛出降级错误。我遇到以下崩溃:java.lang.RuntimeException:android.databa

android - 使用 cursor.getCount() 获取计数或在 SQL 子句上使用 COUNT 执行 rawQuery?

什么在内存效率方面更好或在Android和SQLite上具有最佳整体性能,使用cursor.getCount()获取记录计数或在普通SQL子句上使用COUNT执行rawQuery(并使用cursor.getInt(0)稍后获取返回的计数)?注意:我没有使用结果,我只想要计数。 最佳答案 如果您之后使用查询的结果,那么当然最好的方法是执行cursor.getCount()这比执行2个查询更快,一个是获取计数,另一个是结果编辑:如果您不使用结果,那么rawQuery会更快,因为您只会从数据库中获取一列而不是很多列。另外,为什么您会浪费资

android - 使用 cursor.getCount() 获取计数或在 SQL 子句上使用 COUNT 执行 rawQuery?

什么在内存效率方面更好或在Android和SQLite上具有最佳整体性能,使用cursor.getCount()获取记录计数或在普通SQL子句上使用COUNT执行rawQuery(并使用cursor.getInt(0)稍后获取返回的计数)?注意:我没有使用结果,我只想要计数。 最佳答案 如果您之后使用查询的结果,那么当然最好的方法是执行cursor.getCount()这比执行2个查询更快,一个是获取计数,另一个是结果编辑:如果您不使用结果,那么rawQuery会更快,因为您只会从数据库中获取一列而不是很多列。另外,为什么您会浪费资

python - 我怎样才能模拟 sqlite3.Cursor

我一直在努力想弄清楚如何模拟sqlite3.Cursor类,特别是fetchall方法。考虑以下代码示例importsqlite3frommockimportMock,patchfromnose.toolsimportassert_falseclassFoo:defcheck_name(name):conn=sqlite3.connect('temp.db')c=conn.cursor()c.execute('SELECT*FROMfoowherename=?',name)iflen(c.fetchall())>0:returnTruereturnFalse@patch('sqlite