我正在做一个项目,我必须每 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();
}
}