运行循环一分钟 - Android

Osc*_*dez 0 java android loops calendar while-loop

我正在看关于循环的在线java教程.这创建了一个将运行一分钟的循环.在每个循环中,完成一个数字的平方根,然后该数字增加1.从理论上讲,这将用于测量器件的速度,因为根据器件的电位可以得到不同数量的环路重复.

问题是我不能在Android中使这项工作.这是我的代码:

package com.example.app;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.widget.TextView;

import java.util.Calendar;

public class MainActivity extends ActionBarActivity {
    TextView tv1, tv2;
    int index = 0;
    int  s, second, minute;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_main);
        tv1 = (TextView) findViewById(R.id.tv1);
        tv2 = (TextView) findViewById(R.id.tv2);

        //CURRENT TIME
        Calendar c = Calendar.getInstance();
        minute = c.get(Calendar.MINUTE);
        second = c.get(Calendar.SECOND);

        //TIME AFTER 5 SECONDS
        s = second + 5;

        tv1.setText("Processing...  Initial Time: " + minute + " minutes " + second + "seconds" );

        while (true){
            double x = Math.sqrt(index);
            index++ ;
            // each loop will check the until 5 seconds elapsed
            c = Calendar.getInstance();
            if (c.get(Calendar.SECOND) == s);{
                tv2.setText("\nDone! Final Time: " + c.get(Calendar.MINUTE) + " minutes " + c.get(Calendar.SECOND) + "seconds\n" +
                index + " Loops in 5 seconds\n" +
                "checking boolean... " +c.get(Calendar.SECOND) + " = " + s);
                break;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是结果: 在此输入图像描述

Dim*_*erg 5

试试这个:

if (c.get(Calendar.SECOND) == s){
Run Code Online (Sandbox Code Playgroud)

我删除了";" 符号

另请注意,主应用程序线程中的长计算会冻结它,因此您应该为计算启动后台线程.