JavaRush /Java блог /Архив info.javarush /Android ::: "Как я полез в многопоточность, чтобы изобрес...
Gamyponko
8 уровень
Самара

Android ::: "Как я полез в многопоточность, чтобы изобрести велосипед!"

Статья из группы Архив info.javarush
Добрый день! Сижу с огромной улыбкой на лице и сам над собой ржу, суть повести в том: "Читай Карл... Читай внимательно документацию!!". С момента прошлого поста, куча изменений, я плотнее вошёл в Java по Head first... / Thinking in Java ; когда вопрос стал идти ли дальше на JR глубже в Java, я выбрал Android курсы на другом ресурсе(языковая практика, интерактив и мне по кайфу). Вместе с этим сейчас я получил оффер от ИТ-компании, но на позицию junior-тестировщика/*Кстати, тема тестирования здесь не раскрыта, и если интересно чё как, какие плюсы для будущего разработчика, могу подробно описать + общение с HR*/ Сейчас я о другом) Android курс полетел, всё глубже и глубже иду в мобайл, и в Java ; в прошлое воскресенье я столкнулся с темой: "... class Context". С помощью него можно получить доступ ко всему девайсу, я так с gps побаловался, и остановился на вибро. Бегло пробежался по документации и расстроился, т.к. android < 8.0 - не умеет настраивать силу/интенсивность вибрации, другими словами он либо вкл./выкл. И то, не так что vibrator.start(), а vibrator.vibrate(int milisec); надо нам в него запихнуть кол-во милисекунд для работы. Я подумал-подумал, хм.... Потоки! Включу пару потоков(в каждом солянка из методов) и буду усыплять с какой-нибудь периодичностью, а слабую/сильную вибрацию получу от разного периода вкл/выкл. Пошёл я через задний проход, написал кучу методов, запускаю через клик по кнопке - работает, но как-то херово. Переписал, перечитал что мог найти по потокам, прокинул логи и *бах*, логи работают, потоки бегут! Но интерфейс тормозит... Тема на самом деле открыта, хотя я уже залез в метод onCreate /*отрисовывает окно пользователя*/, открыл для себя сервисные потоки и буду переделывать в общем по уму, ну как мне кажется) Кстати, показал потоки своим разработчикам знакомым, сказали, молодец всё вроде нормально. И так три дня,я туда сюда летаю по оф. докам и англоязычным статьям. А сейчас решаю перечитать ещё раз class Vibrator. Нахожу, а тут внимание: void vibrate (long[] pattern, int repeat) ; где long: an array of longs of times for which to turn the vibrator on or off. Другими словами, я мог в него сразу же в самом начале передать массив {100, 50, 100, 50 и т.п.} - в котором первое число: "время до включения", второе число: "время работы" и так до конца... Вы понимаете?! Я просто не дочитал документацию и полез педалить, когда метод был под рукой с самого начала! Вот сижу и до сих пор смеюсь)
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ