3
我目前正在研究一個需要參與者在一段時間過去之前按下按鈕的研究的Android應用程序。如果他們在時間到了之前沒有按下按鈕,應用程序應該轉到下一個試用版。所有關於等待一段時間而能夠被中斷的答案都涉及到線程,而我沒有很高的經驗。這是我目前所擁有的:檢測在一段時間過去之前是否按下了按鈕
final Long time = System.currentTimeMillis();
end = time + timeAllowed;
//button click listeners
Log.d("Here", "ClickListener");
low.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
response = 0;
end = (long)0;
Log.d("Clicked", "Clicked!");
}
});
high.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
response = 1;
end = (long)0;
}
});
//actually waiting
//This is a really stupid hack
while(System.currentTimeMillis() < end)
{}//nothing happens yet
//timeAllowed has passed
responseTime = System.currentTimeMillis() - time;
這是包含在48個試驗的循環中。出於某種原因,我的onClickListeners在for循環完成執行之前無法正確創建,即使我將它們放在for循環的開頭之上。另外,代碼無法標記在循環之後應該按下哪個按鈕(通過將button.setText設置爲顯示的代碼段之上來完成)。我可能會做錯什麼?
要完全清楚,我想等待按鈕按下或時間到期後再繼續。
科裏的迴應是我目前實施的。
我真的需要對此做出迴應。謝謝 請幫助。
這似乎比我想要做的更簡單一些,但是如何知道什麼時候過去了,如果按鈕沒有被按下? –
您可以將處理程序設置爲延遲發佈。編輯帖子以顯示。 –