0

我正在做一个项目,我必须每 10 秒进行一次同步,我在服务器上接收人们想要同步的内容。将此首选项保存在数组中并在数组中四处查看用户首选项(他们想要同步的内容)。如果选择了 id 1 则执行 log.i ();

这给了我一个问题:每次同步时都会执行 log.i("Starting service"); + log.i(“大表”)。随着时间的推移,它变成了这样:

第二次同步:
log.i("启动服务");
log.i("大表!")
log.i("大表!")

第三次同步:
log.i("启动服务");
log.i("大床单!")
log.i("大床单!")
log.i("大床单!")

...每次都一样,我可以打开多项服务吗?

public class service extends Service{

Context context;
Timer t=new Timer();
timertask timertask=new timertask();
database db;
List checksync =new ArrayList();

@Override
public IBinder onBind(Intent arg0) {
    return null;
}

public void onCreate(){
    //Se comienza aqui!
    super.onCreate();
    //Cojemos el contexto del thread de UI
    context=this;
    db=new database(context);
    onStartCommand1();
}

public void onStartCommand1(){
    //Tiempo de sincronización!
    t.schedule(timertask, 0,5000);
    this.stopSelf();
}

public class timertask extends TimerTask{

    public void run() {
        //Comenzamos a ver que està seleccionado y hacemos threads para subirlo al server

        int num=0;
        db.open();
        checksync = db.check();
        db.close();
        int lenght = checksync.size();
        check(lenght,num);
        Log.i("******", "Starting service");
    }

    public void check(int lenght, int num){

        for(int x=0; x < lenght; x++) {

            num = Integer.parseInt(checksync.get(x).toString());

            if (num == 1) {
                // Subir Sms al server.

            } else if (num == 2) {
                // Subir llamadas

            } else if (num == 3) {
                //subir contactos
                Log.i("*********", "Big sheet!");

            } else if (num == 4) {
                // Subir nombre apps

            } else if (num == 5) {
                // Subir localizaciÔøΩn.

            } else if (num == 6) {
                // Subir todo... (MÔøΩs tarde)
            }
        }
    }

}

public void onDestroy(){
    super.onDestroy();
}

}

4

0 回答 0