public void onChange(boolean selfChange) {
Log.e("Info","Notification on SMS observer");
Cursor sms_sent_cursor = mContext.getContentResolver().query(SMS_STATUS_URI, null, null, null, null);
if(sms_sent_cursor.moveToNext()){ //This is the line I would like to change.
String protocol = sms_sent_cursor.getString(sms_sent_cursor.getColumnIndex("protocol"));
}
}
问题是,当我的应用程序正在运行一些其他活动时,ContentObserver 保持活动状态,观察 SMS 活动,但是如果在我的应用程序执行一些其他活动时发送了 5 条 SMS,则观察者等待活动完成(因为它可能使用一个线程)所以它可以被调用。但问题是当它被调用时,方法调用sms_sent_cursor.moveToNext()
将调用最后一条短信,而其他四个将被忽略。
这就是为什么我正在考虑从moveToNext()
tomove(int offset)
或moveToPosition(int position)
但我不知道将什么作为这些方法的参数以转到特定消息,即调用它的消息而不是最后一个消息。
任何人有任何想法或知道任何其他方式来做到这一点?
谢谢!