那你要关注下threads表是如何更新,印象中threads只有数据第一次写入是通过代码完成,其它的操作是通过触发器实现的,看下threads表相关的触发器吧,相关的触发器创建代码在
MmsSmsDatabaseHelper.java (packages\apps\telephonyprovider\src\com\android\providers\telephony)
猜测你的问题可能是sms表的记录删除后并没有触发threads的触发器,可能是哪里条件不满足吧,多调试下吧

解决方案 »

  1.   

    你好,感谢你的回答。  threads表不让更新唉。 我想问下 packages\apps\telephonyprovider\src\com\android\providers\telephony)
    这个路劲在哪里看呢?android 源码吗? 我找不到 packages。。
      

  2.   

    packages/providers/TelephonyProvider/src/com/android/providers/telephony/
      

  3.   

    终于调试出来了。使用这个方法可以删除sms表中的数据,同时更新threads表中的数据。Uri uri = Uri.withAppendedPath(Sms.CONTENT_URI, 
            String.valueOf(draftMsg.getMessageId())); 
    getContentResolver().delete(uri, null, null); 具体原因就不得而知了。有知道的员友不吝赐教。
      

  4.   

    我的可以清除,跟楼主一样的方法         getContentResolver().delete(Uri.parse(AllFinalInfo.SMS_URI_ALL),
             Sms.THREAD_ID + "=" + mThreadID + " and " + Sms.TYPE + "=" + Sms.MESSAGE_TYPE_DRAFT,
             null);