本帖最后由 zhq56030207 于 2010-12-08 11:08:30 编辑

解决方案 »

  1.   

    现在好像又发现问题:
    一.当我一条一条的删除短信的时候,会执行到同步删除操作,也就是当短信的数目减少时,我的程序里面也会同步的更新
    二.但是如果是一下子删除整个两个人的会话,也就是删除了大于2条的短信时,则监听不到++++无法执行到[color=#339966]else if (smscur.getCount() < cur.getCount())//[/color]
    不知道是为什么?
    是不是逐条删除和完整删除有区别?可是这些区别在什么地方?希望有知道的朋友解答...
      

  2.   

    else if (smscur.getCount() < cur.getCount())//这里面相当于是在操作逐条进行删除的更新
     {
                            // Delete a message.
                            
                            }
                            cur.close();
                    } 
    else if (会话删除)

    if(短信的计数<我的计数)

       执行更新...//这些都该如何写呢?

    }else {
                            // SMS Count() = cur Count()??
                            
                            smscur.close();
                            cur.close();
                    }        }
      

  3.   

    是不是删除一条的时候是根据短信id删除的,而删除整个会话时是按照联系人或者会话的id(如果有的话)来删除的?
    另外,删除多条短息时,是不是在都删除了才执行的commit提交数据库修改?或者执行了批处理删除?
    对这方面不熟悉,只能按照常理推论下,呵呵!
      

  4.   

    谢谢回复,一下子删除,应该是smscur得不到count,所以..我也不知道具体原因..
      

  5.   

    删除会话看到你是这样写的
    1. getContentResolver().delete(        
    2.                     Uri.parse("content://sms/conversations/"        +            threadid,        
    3.                     "_id = " + idelete, null); 
    那么,监听删除的时候是不是也要监听会话的删除?
    监听的uri的问题?
      

  6.   

    我觉得关键问题是你如何调用upSMSTable()这个函数。如果你调用这个函数时数据库的短信并没有被删除,那自然比较数目时就会相等,因此监听就会失败,
    还是你会类timer的形式去做?最好用ContentObserver去做,我觉得
      

  7.   

    upSMSTable()你这个函数怎么被调用的?timer形式去被调用的的吗?
      

  8.   

    现在告诉你吧
    那个会话的现在监听不了的!因为THREDS表已经给GOGLES封的了