私は最近 Java を使い始め、Android 開発を検討しています。私が作成した Java プログラムの 1 つを移植しようとしていましたが、Java タイマーを Android で同じように機能させるのに苦労しています。私は多くの投稿を読みましたが、ほとんどの場合、Timer ではなく Android で Handler クラスを使用する方が良いことが示されました。
これはJavaでの私のタイマーでした:
playTimer = new Timer(1000/model.getFPS(), new ActionListener() {
public void actionPerformed(ActionEvent evt) {
// do something
...
if( finished everything ) playTimer.stop();
}
});
そして、特定のボタンがクリックされたら、単に「playTimer.start()」を実行して開始します。
ご覧のとおり、ユーザーが必要な FPS を設定できるようにセットアップしました (Timer クラスの最初のパラメーターを 1000/model.getFPS() に設定するだけです)。
Androidでハンドラーを使用して同様のことをしようとしましたが、いくつかの問題があります。ハンドラー ティックが適切な間隔で起動していないようです。私が必要としているものと比較して、それらはかなり遅いようです。これは私がこれまでアンドロイドで行ったことです:
public void startTimer() {
playHandler = new Handler();
startTime = System.currentTimeMillis();
playHandler.removeCallbacks(updateTimeTask);
playHandler.postDelayed(updateTimeTask, 0);
}
private Runnable updateTimeTask = new Runnable() {
public void run() {
// do something
...
if( finished everything ) playHander.cancel();
else {
playHandler.postDelayed(updateTimeTask, 1000/model.getFPS());
}
}
};
半疑似コードですみません。誰でも光を当てることができますか?みんなありがとう。