删除草稿信息之后 threads表的数据没有发生变化
2013-07-17 18:18
274 查看
现象描述:
无论是用_id来删除草稿信息,还是用thread_id和type来删除草稿,草稿都可以删除掉,但是threads表中的数据都没有发生变化。
private void removeDraftMessage() {
if(draftMsg == null) {
return;
}
/*getContentResolver().delete(Sms.CONTENT_URI,
"_id=" + draftMsg.getMessageId(), null);*/
getContentResolver().delete(
Sms.CONTENT_URI,
"thread_id=" + mThreadId + " and type="
+ Sms.MESSAGE_TYPE_DRAFT, null); // 红色的两种删除方法都无法将信息从数据库中删除干净。
draftMsg = null;
}
网上寻求资料,也有类似的提问,有网友答复:
那你要关注下threads表是如何更新,印象中threads只有数据第一次写入是通过代码完成,其它的操作是通过触发器实现的,看下threads表相关的触发器吧,相关的触发器创建代码在
MmsSmsDatabaseHelper.java (packages\apps\telephonyprovider\src\com\android\providers\telephony)
猜测你的问题可能是sms表的记录删除后并没有触发threads的触发器,可能是哪里条件不满足吧,多调试下吧
android系统提供的代码。
D:\android4.2.2\android\packages\apps\Mms\src\com\android\mms\ui\ComposeMessageActivity.java
ComposeMessageActivity类所在包是:package com.android.mms.ui;
终于调试出来了。使用这个方法可以删除sms表中的数据,同时更新threads表中的数据。
Uri uri = Uri.withAppendedPath(Sms.CONTENT_URI,
String.valueOf(draftMsg.getMessageId()));
getContentResolver().delete(uri, null, null);
具体原因就不得而知了。有知道的员友不吝赐教。
无论是用_id来删除草稿信息,还是用thread_id和type来删除草稿,草稿都可以删除掉,但是threads表中的数据都没有发生变化。
private void removeDraftMessage() {
if(draftMsg == null) {
return;
}
/*getContentResolver().delete(Sms.CONTENT_URI,
"_id=" + draftMsg.getMessageId(), null);*/
getContentResolver().delete(
Sms.CONTENT_URI,
"thread_id=" + mThreadId + " and type="
+ Sms.MESSAGE_TYPE_DRAFT, null); // 红色的两种删除方法都无法将信息从数据库中删除干净。
draftMsg = null;
}
网上寻求资料,也有类似的提问,有网友答复:
那你要关注下threads表是如何更新,印象中threads只有数据第一次写入是通过代码完成,其它的操作是通过触发器实现的,看下threads表相关的触发器吧,相关的触发器创建代码在
MmsSmsDatabaseHelper.java (packages\apps\telephonyprovider\src\com\android\providers\telephony)
猜测你的问题可能是sms表的记录删除后并没有触发threads的触发器,可能是哪里条件不满足吧,多调试下吧
android系统提供的代码。
D:\android4.2.2\android\packages\apps\Mms\src\com\android\mms\ui\ComposeMessageActivity.java
ComposeMessageActivity类所在包是:package com.android.mms.ui;
终于调试出来了。使用这个方法可以删除sms表中的数据,同时更新threads表中的数据。
Uri uri = Uri.withAppendedPath(Sms.CONTENT_URI,
String.valueOf(draftMsg.getMessageId()));
getContentResolver().delete(uri, null, null);
具体原因就不得而知了。有知道的员友不吝赐教。
相关文章推荐
- mysql 删除之后.myd文件大小没有变化
- 002--第一次成功删除之后,后续的删除会脏数据读取到第一次的记录信息id
- angularjs 删除循环中的 promise 数据之后立马显示变化
- 关于sqlite删除数据之后大小没变化
- 删除sql计划 调用的目标发生了异常。 (mscorlib) 其他信息: 用户 'sa' 登录失败。
- 两张关联表,删除主表中已经在副表中没有的信息
- ViewPager中嵌套Fragment,切换之后出现空白页没有加载数据的解决方法
- Android创建或删除了文件,在电脑端查看的时候,却没有对应的变化,处理办法
- 当request某个属性值变化之后,它原本所付给的int 变量的值似乎没有跟着改变,必须int变量参与运算,如+1或-1,或者直接用request获取值才能得到想要的结果。否则只能得到最开始所付的值
- 添加/删除windows程序里没有Internet 信息服务(IIS)的选项解决方案
- android ListView没有数据时信息显示
- 我的android 第26天 - 当ContentProvider中数据发生变化时向其用户发出通知
- Python爬虫-爬取集思录的金融信息,并写入文件和检测数据变化发送邮件通知
- 一致性哈希算法——算法解决的核心问题是当slot数发生变化时,能够尽量少的移动数据
- 再杀掉app之后 删除NSUserDefault存在本地的数据
- 当数据库某张表数据发生变化时,更新c#程序中缓存的用法
- 怎样手工删除数据库里的Merge Replication信息
- 存储的信息发生变化,需要更新表结构,该怎么做?
- Oracle 数据库更新或者删除之后,怎样恢复之前的数据
- sqlserver中如何删除没有主键的重复数据。