30秒たったら画面遷移するという処理を実装したいのです。
このようなコードを書いてみたのですが、ぴったり30秒ではなく30.012など多少の誤差が生じてしまいます。
解決方法を教えてください。
public class Game extends AppCompatActivity { public final static String SCORE = "com.sample.SCORE"; private TextView timetxt; int num; int score = 0; long startTime; long t; private Handler handler = new Handler(); private Runnable updateTimer; private Runnable updateTimer1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_game); get_11(); } @Override public void onResume (){ super.onResume(); } public void get_11(){ timetxt = (TextView)findViewById(R.id.timetxt); startTime = SystemClock.elapsedRealtime(); updateTimer = new Runnable() { @Override public void run() { t = SystemClock.elapsedRealtime() - startTime; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("mm:ss.SSS", Locale.US); timetxt.setText(simpleDateFormat.format(t)); handler.removeCallbacks(updateTimer); handler.postDelayed(updateTimer,10); } }; handler.postDelayed(updateTimer,10); updateTimer1 = new Runnable() { @Override public void run() { if (t < 30000){ handler.removeCallbacks(updateTimer1); handler.postDelayed(updateTimer1,30000); } else { get_12(); } } }; handler.postDelayed(updateTimer1,30000); } コード
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/03 07:40
2016/09/03 08:28
2016/09/03 12:32
2016/09/03 12:37
2016/09/03 12:46
2016/09/03 13:00
2016/09/03 13:10
2016/09/03 13:25
2016/09/03 13:38
2016/09/03 14:00
2016/09/03 14:04
2016/09/03 14:08
2016/09/03 14:12