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が送信された場合、オブザーバーはアクティビティが完了するのを待ちます(おそらく1つのスレッドを使用するため)、呼び出すことができます。ただし、問題は、それが呼び出され、メソッド呼び出しsms_sent_cursor.moveToNext()
が最後のSMSを呼び出し、他の4つが無視される場合です。
だから私はmoveToNext()
からmove(int offset)
またはに変更することを考えていましたmoveToPosition(int position)
しかし、これらのメソッドのパラメーターとして、最後のメッセージではなく呼び出された特定のメッセージに移動するために何を入れるべきかわかりません。
誰かがこれを行うためのアイデアや他の方法を知っていますか?
ありがとう!