Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Dimitrii
1 / 1 / 0
Регистрация: 20.04.2013
Сообщений: 185
#1

Задержка потока с помощью sleep() - Программирование Android

03.01.2016, 15:46. Просмотров 262. Ответов 1
Метки нет (Все метки)

Так... собственно код
Java
1
2
3
4
5
6
7
8
9
10
11
 while (y>0)
        {
                           y--;
                WorkArray[y][x] = 1;
               try
               {Show();
                   Thread.sleep(wait);}
               catch (InterruptedException ie)
               {}
            
                    }
Задача следующая- этот кусок кода меняет масив, метод Show() служит для отображения масива в текущем состоянии. Мне нужно чтоб после каждой WorkArray[y][x] = 1; масив выводился на долю секунды, то есть чтоб было видно как он меняется . Но в данном варианте кода, он тупо ждет, а потом показывает финальное изменение. А мне нужно чтоб как анимацией шло-чтоб были видны и промежуточные.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2016, 15:46     Задержка потока с помощью sleep()
Посмотрите здесь:
Разная задержка rstp-потока на разных устройствах Android
Thread.sleep() Android
Задержка выполнения цикла Android
Задержка между действиями Android
Android Задержка отрисовки Canvas. MotionEvent
Задержка выполнения кода на несколько секунд Android
Задержка звука при стриме по wifi Android
Libgdx. Задержка перед выполнением действия Android
Задержка при выводе картинки в button? Android
Растет задержка между отправкой и получением сообщения Handler Android
C++ Объясните тупому почему задержка потока по Sleep() больше чем ... с вызывает задержки и других потоков?
Задержка, sleep C++ Qt

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ev[G]eN
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
04.01.2016, 12:26     Задержка потока с помощью sleep() #2
Dimitrii, это нужно выносить в отдельный поток
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package com.cyberforum;
 
import java.util.Arrays;
 
public class Main {
 
    private static final int ARRAY_SIZE = 5;
 
    private static int[] mNumbersArray;
 
    private static void showArray() {
        System.out.println(Arrays.toString(mNumbersArray));
    }
 
    public static void main(String[] args) {
        mNumbersArray = new int [ARRAY_SIZE];
        for (int i = 0; i < ARRAY_SIZE; i++) {
            mNumbersArray[i] = i + 1;
        }
 
        new Thread(new Runnable() {
            @Override
            public void run() {
                int i = ARRAY_SIZE;
                while (i > 0) {
                    mNumbersArray[--i] = 0;
                    showArray();
 
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }).start();
    }
}
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru