在一定时间后生成方程

时间:2016-10-18 15:00:41

标签: android android-studio timer

我正在Android Studio中开展一个学校项目,到目前为止,我已经编写了一个生成随机方程式的代码,然后在textview中显示这个等式。这是代码:

String[] operationSet = new String[]{"+", "-", "/", "*"};

            Random random = new Random();
            int numOfOperations = random.nextInt(2) + 1;

            List<String> operations = new ArrayList<>();

            for (int i = 0; i < numOfOperations; i++) {
                String operation = operationSet[random.nextInt(4)];
                operations.add(operation);
            }

            int numOfNumbers = numOfOperations + 1;
            List<Integer> numbers = new ArrayList<>();

            for (int i = 0; i < numOfNumbers; i++) {
                int number = random.nextInt(10)+1;
                numbers.add(number);
            }

            String equation = "";
            for (int i = 0; i < numOfOperations; i++) {
                equation += numbers.get(i);
                equation += operations.get(i);
            }
            equation += numbers.get(numbers.size() -1);

            TextView TextEquation = (TextView)findViewById(R.id.textView3);
            TextEquation.setText(equation);

            String stringResultOfEquation = String.valueOf(equation);

            // Resultat der Rechung berechnen

            double doubleAnswer = eval(stringResultOfEquation);

            String stringAnswer = Double.toString(doubleAnswer);

            TextView textAnswer = (TextView)findViewById(R.id.textView4);
            textAnswer.setText(stringAnswer);

到目前为止,我已尝试使用TimerTask命令:

TimerTask timerTaskWaiting = new TimerTask() {
        @Override
        public void run() {

        }
    };

    Timer timerwaiting = new Timer();
    timerwaiting.schedule(timerTaskWaiting, 5000);

我已经将“等式生成器代码”放入“public void run(){...}”中,但是当我试用它时应用程序崩溃了。

我现在的问题是,如果有一种简单的方法可以在一定时间(例如5秒)之后生成方程式,我的意思是,我希望方程式将在应用程序启动后5秒生成。

如果我的问题中有任何不清楚的地方,请随时提出,我会尽力澄清问题:)

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

这段代码应该足以让您了解您需要做什么。显然,还有其他方法可以实现这一目标。

handler = this.handlerByIntent[string.Empty];

答案 1 :(得分:0)

使用RxJava库,它是组织周期性任务的非常简单的工具。