Android için setTimeOut(call function(),milliseconds);
eşdeğer koduna ihtiyacım var.Android için setTimeOut() javascript'in karşılığı nedir?
setTimeOut(call function(),milliseconds);
Android için setTimeOut(call function(),milliseconds);
eşdeğer koduna ihtiyacım var.Android için setTimeOut() javascript'in karşılığı nedir?
setTimeOut(call function(),milliseconds);
Muhtemelen yetişmiş beri bu yine bir Handler olan farklı bir öneri yapmak istiyorum dışarı TimerTask
kontrol etmek istiyorum. Hander'ın UI iş parçacığı üzerinde oluşturulduğu veya oluşturucusunda ana lüper kullanarak oluşturduğu UI iş parçacığıyla ilişkilendirileceği için runOnUiThread öğesini açıkça çağırmanız gerekmeyeceği için TimerTask'dan daha basittir. Bu şekilde çalışacak: işleyicinizin hala don eğer çalışırken
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);
}
sizin aktivitede işleyicilerle Dikkat edilmesi gereken bazı şeyler vardır OnStop'ta durdurun (veya onResume'de başlattıysanız), bu UI'yi güncelleştirmeye çalışırsanız bu sorunlara yol açacaktır
Geçerli projemde kullandığım kod budur. Matt'in dediği gibi TimerTask kullandım. 60000 milisec'dir. = 60 sn. Maç puanlarını yenilemek için kullandım.
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);
Çalışmıyor. AutoUpdate ne demektir? ve runOnUiThread. Eksi – l0gg3r
Bu sorular pek alakalı değil, l0gg3r. Kullanıcı arabiriminde 60 saniye sonra çalışacak bir görev örneği verdi. Herhangi bir Android geliştiricisi kodu kolayca anlayabilmelidir. –
Yine de bir şey, @GiantRobot. Bu örnek setTimeout'tan daha setInterval gibi davranır. Bu kodun setTimeout için kullanılması gereken değişiklikler: değerlerin sırasını değiştirir (60000, 0 yerine 0, 60000) ve zamanlayıcıyı run() işlevinde durdurur, böylece yalnızca bir kez çalışır. –
underscore-java kütüphanede setTimeout() yöntemi yoktur.
Kod örnek:
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);
}
}
fonksiyon yeni bir iplikle 100ms başlanacaktır. Valentyn cevaba devamı niteliğindeki
java çizgi kullanılarak:
gradle için bağımlılık ekleyin:
dependencies {
compile group: 'com.github.javadev', name: 'underscore', version: '1.15'
}
Java: bir
import com.github.underscore.lodash.$;
$.setTimeout(new Function<Void>() {
public Void apply() {
// work
return null;
}
}, 1000); // 1 second
olası yinelenen http://stackoverflow.com/q/4817933/776084 – RanRag