问题描述
我在应用程序中需要实现一个在本地数据库中自动删除过时的记录,并且在推出应用程序后也具有监听功能。求问实现过程及方法,能详细点更好! 问题补充:我的操作是这样的:在手机客户端有一个SQLite,应用程序能随时接受到服务端的消息,自动删除昨天的数据
解决方案
OK,看来我是写得太多了点,1. 应用程序能随时接受到服务端的消息。这个相信你可以做到的,我觉得这个也帮不了你什么。2. 自动删除昨天的数据,不知道你的应用程序是怎么的,无论如何这都只是对数据库进行操作。这个不能用上面的方式来进行。本来监听时间的变化ACTION_DATE_CHANGED就可以了,但是很多人反映这个不能正常工作。所以都推荐用AlarmManager (http://stackoverflow.com/questions/4500442/how-to-receive-broadcastrecevier-when-devices-date-automaticaly-change)但是这个我也是熟,所以不能提供更多帮助了。
解决方案二:
虽然打了两次都因为浏览器无响应面报废了,但哥门我够坚强,又站起来了。这上问题不知道你是不是这个问题哈。1. 先看使用的代码:下面是我们在做未接来电时的代码:mResolver.registerContentObserver(CallLog.Calls.CONTENT_URI, true, missedCallObserver)这个CallLog.Calls.CONTENT_URI是在数据库中提供支持的。而missedCallObserver继承了ContentObserver在CallLog.Calls.CONTENT_URI监听的内容发生变化是就会调用missedCallObserver的onChange方法。2. 如何实现的对URI的支持。看源码CallLogProvider.java有如下方法:protected void notifyChange() { getContext().getContentResolver().notifyChange(CallLog.CONTENT_URI, null, false /* wake up sync adapters */); }这里告知CallLog.CONTENT_URI,有数据变化。再一个notifyChange在哪些地方被调用呢。不用看想也应该想在是在对数据库进行增,删,改的时候。事实也是如此.3. 谢谢,希望这对你有所帮助。