Я пытаюсь выполнять на Android
каждые пять секунд Runnable
, который должен вставлять эти значения в базу данных:
value | seconds delayed
1 0
2 5
3 10
4 15
3 20
2 25
1 30
Мой подход был следующим:
public class MainActivity extends AppCompatActivity{
public static int currentValue;
public static int directionSign;
protected void onCreate(Bundle savedInstanceState) {
generateData();
}
public void generateData(){
currentValue = 1;
int directionSign = 1;
while(!(directionSign == -1 && currentValue == 0)){
Handler handler=new Handler();
Runnable r=new Runnable() {
public void run() {
long currentTimestamp = System.currentTimeMillis();
db.insertValue(currentTimestamp, currentValue);
}
};
//Insert two registers for each state
for(int i=0; i<2; i++) {
handler.postDelayed(r, 5000);
}
if(currentValue == 4){
directionSign = -1;
}
currentValue+= directionSign;
}
handler.postDelayed(r, Constants.MEASUREMENT_FREQUENCY);
}
}
Однако этот код застревает на value 1
. У меня вопрос: как мне это сделать, чтобы он сгенерировал вывод, показанный в таблице?