zoukankan      html  css  js  c++  java
  • 删除草稿信息之后 threads表的数据没有发生变化

    现象描述:

    无论是用_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 (packagesapps elephonyprovidersrccomandroidproviders elephony)
    猜测你的问题可能是sms表的记录删除后并没有触发threads的触发器,可能是哪里条件不满足吧,多调试下吧

    android系统提供的代码。

    D:android4.2.2androidpackagesappsMmssrccomandroidmmsuiComposeMessageActivity.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);

    具体原因就不得而知了。有知道的员友不吝赐教。

  • 相关阅读:
    dwSun带你选Python的编辑器/IDE
    ubuntu中文乱码解决
    解决matplotlib中文显示
    1506.01186-Cyclical Learning Rates for Training Neural Networks
    1503.02531-Distilling the Knowledge in a Neural Network.md
    1804.03235-Large scale distributed neural network training through online distillation.md
    mysql导入太慢解决方法
    已某个时间单位(日月周年)来分割时间段
    阿里云邮件推送
    阿里云短信推送服务
  • 原文地址:https://www.cnblogs.com/fengzhblog/p/3196388.html
Copyright © 2011-2022 走看看