Android用のsetTimeOut(call function(),milliseconds);
に相当するコードが必要です。
setTimeOut(call function(),milliseconds);
おそらくチェックアウトしたい TimerTask
これをもう一度取り上げたので、 Handler という別の推奨事項を作成します。ハンドラーはUIスレッドで作成されるか、コンストラクターでメインルーパーを使用して作成する限り、ハンドラーはUIスレッドに関連付けられるため、runOnUiThreadを明示的に呼び出す必要がないため、TimerTaskよりも簡単に使用できます。これは次のように機能します。
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);
}
アクティビティのハンドラーについて知っておくべきことがいくつかあります。
これは、現在のプロジェクトで使用したコードです。 Mattが言ったように、私はTimerTaskを使用しました。 60000はミリ秒です。 = 60秒。試合のスコアを更新するために使用しました。
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);
nderscore-Java ライブラリにはsetTimeout()メソッドがあります。私はプロジェクトのメンテナーです。
コード例:
import com.github.underscore.lodash.U;
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; } };
U.setTimeout(incr, 100);
}
}
関数は新しいスレッドで100msで開始されます。
Javaアンダースコアを使用したValentyn回答の続きとして:
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