Tôi cần mã tương đương setTimeOut(call function(),milliseconds);
cho android.Tương đương với setTimeOut() javascript với Android là gì?
setTimeOut(call function(),milliseconds);
Tôi cần mã tương đương setTimeOut(call function(),milliseconds);
cho android.Tương đương với setTimeOut() javascript với Android là gì?
setTimeOut(call function(),milliseconds);
Bạn có thể muốn kiểm tra TimerTask
Vì bạn đưa lên đây một lần nữa tôi muốn làm một đề nghị khác nhau, mà là một Handler. Nó đơn giản hơn khi sử dụng TimerTask vì bạn không cần phải gọi runOnUiThread một cách rõ ràng vì Handler sẽ được liên kết với chuỗi giao diện người dùng miễn là nó được tạo trên luồng UI hoặc bạn tạo nó bằng cách sử dụng looper chính trong hàm tạo của nó. Nó sẽ làm việc như thế này:
private Handler mHandler;
Runnable myTask = new Runnable() {
@Override
public void run() {
//do work
mHandler.postDelayed(this, 1000);
}
}
@Override
public void onCreate(Bundle savedState) {
super.onCreate(savedState);
mHandler = new Handler(Looper.getMainLooper());
}
//just as an example, we'll start the task when the activity is started
@Override
public void onStart() {
super.onStart();
mHandler.postDelayed(myTask, 1000);
}
//at some point in your program you will probably want the handler to stop (in onStop is a good place)
@Override
public void onStop() {
super.onStop();
mHandler.removeCallbacks(myTask);
}
Có một số điều cần biết về với xử lý trong hoạt động của bạn:
Đây là mã mà tôi đã sử dụng trong dự án hiện tại của mình. Tôi đã sử dụng TimerTask như Matt đã nói. 60000 là milisec. = 60 giây tôi đã sử dụng nó để làm mới điểm số trận đấu.
private void refreshTimer() {
autoUpdate = new Timer();
autoUpdate.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
adapter = Score.getScoreListAdapter(getApplicationContext());
adapter.forceReload();
setListAdapter(adapter);
}
});
}
}, 0, 60000);
Nó không hoạt động. Điều gì có nghĩa là autoUpdate? và runOnUiThread. Minus – l0gg3r
Những câu hỏi này hầu như không liên quan, l0gg3r. Ông đưa ra một ví dụ về một nhiệm vụ được lên kế hoạch để chạy sau 60 giây, trên chuỗi giao diện người dùng. Bất kỳ nhà phát triển Android nào cũng dễ dàng hiểu mã. –
Một điều, mặc dù, @GiantRobot. Ví dụ này hoạt động giống như setInterval hơn là setTimeout. Những thay đổi cần thiết để sử dụng mã này cho setTimeout sẽ là: thay đổi thứ tự của các giá trị (60000, 0 thay vì 0, 60000) và ngừng bộ đếm thời gian trong hàm run(), để nó chỉ chạy một lần. –
Có phương thức setTimeout() trong thư viện underscore-java.
Mã dụ:
import com.github.underscore.lodash.$;
import com.github.underscore.Function;
public class Main {
public static void main(String[] args) {
final Integer[] counter = new Integer[] {0};
Function<Void> incr = new Function<Void>() { public Void apply() {
counter[0]++; return null; } };
$.setTimeout(incr, 100);
}
}
Chức năng này sẽ được bắt đầu vào năm 100ms với một chủ đề mới.
Như một sự tiếp nối để Valentyn câu trả lời bằng java gạch:
Thêm phụ thuộc vào gradle:
dependencies {
compile group: 'com.github.javadev', name: 'underscore', version: '1.15'
}
Java:
import com.github.underscore.lodash.$;
$.setTimeout(new Function<Void>() {
public Void apply() {
// work
return null;
}
}, 1000); // 1 second
thể trùng lặp của http://stackoverflow.com/q/4817933/776084 – RanRag