我目前正在使用我创建的 Android 内容提供商我在服务中使用查询方法,因为我必须每 2 秒更新一次结果我的问题是我想获取数据库中的最后一行,我把 sursor 到最后一个位置,但每次他都给我他在数据库中找到的所有数据。
这是我开发的服务:
package fr.esigetel.echange.service;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Service;
import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.util.Log;
import fr.esigetel.mediatag.cp.WifiProvider;
public class informationService extends Service {
Timer mTimer;
private Handler mHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        returnContentProvider();
    }
};
@Override
public void onCreate() {
    super.onCreate();
    mTimer = new Timer();
    Log.d("onCreate informationService", "onCreate informationService");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    mTimer.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            mHandler.sendEmptyMessage(0);
        }
    }, 0, 5000);        
    return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
    if (mTimer != null) {
        mTimer.cancel();
        mTimer = null;
    }
    if (mHandler != null) {
        mHandler = null;
    }
    super.onDestroy();
}
@Override
public IBinder onBind(Intent intent) {
    return null;
}
public informationService() {
}
private void returnContentProvider() {
    Uri myuri = Uri.parse("content://fr.esigetel.mediatag.cp/maxdata");
    ContentResolver cr = getContentResolver();
    Cursor c = cr.query(myuri, null, null, null, null);
    int idRech = c.getColumnIndex(WifiProvider.MAX_COL_ID);
    int nameap = c.getColumnIndex(WifiProvider.MAX_COL_APName);
    int adressemac = c.getColumnIndex(WifiProvider.MAX_COL_AdresseMac);
    int rssi = c.getColumnIndex(WifiProvider.MAX_COL_RSSI);
    int frequence = c.getColumnIndex(WifiProvider.MAX_COL_Freq);
    int daterech = c.getColumnIndex(WifiProvider.MAX_Date);
    c.moveToLast();
    while (c.moveToPrevious()) {
        int id = c.getInt(idRech);
        String name = c.getString(nameap);
        String mac = c.getString(adressemac);
        int Rssi = c.getInt(rssi);
        int Freq = c.getInt(frequence);
        int Daterech = c.getInt(daterech);
        try {   
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        Log.d("aaaaaa", name);
    }
    c.close();
}
我怎么能只请求数据库的最后一行?这个方法总是给我整个数据。