アンドロイドに相当するコードsetTimeOut(call function(),milliseconds);
が必要です。AndroidへのsetTimeOut()javascriptに相当するものは何ですか?
setTimeOut(call function(),milliseconds);
アンドロイドに相当するコードsetTimeOut(call function(),milliseconds);
が必要です。AndroidへのsetTimeOut()javascriptに相当するものは何ですか?
setTimeOut(call function(),milliseconds);
あなたは私がHandlerある別の勧告を、したいのですが、再びこれを育てているのでおそらくTimerTask
をチェックアウトしたいです。 runOnUiThreadを明示的に呼び出す必要がないので、TimerTaskよりも使用する方が簡単です。ハンドラがUIスレッドで作成されているか、そのコンストラクタにメインルーパを使用して作成されている限り、UIスレッドに関連付けられます。それはこのように動作します:
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);
それは動作しません。自動更新とはどういう意味ですか?およびrunOnUiThread。マイナス – l0gg3r
これらの質問はほとんど関係ありません、l0gg3r。彼は、UIスレッド上で、60秒後に実行する予定のタスクの例を挙げました。どのAndroid開発者もコードを理解しやすいはずです。 –
ただし、@GiantRobot。この例は、setTimeoutよりsetIntervalのように動作します。このコードをsetTimeoutに使用するために必要な変更は、値の順序を変更(60000、0の代わりに0,60000)し、run()関数でタイマーを停止して1回だけ実行します。 –
underscore-javaライブラリにsetTimeout()メソッドがあります。
コード例:
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);
}
}
関数は、新しいスレッドと100ミリ秒に開始されます。 Javaのアンダースコアを使用してValentynの答えに継続として
:
Gradleのために、依存関係を追加します。
dependencies {
compile group: 'com.github.javadev', name: 'underscore', version: '1.15'
}
のJava:http://stackoverflow.com/qの
import com.github.underscore.lodash.$;
$.setTimeout(new Function<Void>() {
public Void apply() {
// work
return null;
}
}, 1000); // 1 second
可能重複/ 4817933/776084 – RanRag