Как ограничить некоторые датчики для отправки данных каждые несколько секунд? - PullRequest
0 голосов
/ 10 ноября 2019

Я создаю приложение, которое будет считывать данные датчиков и сохранять их в kafka с контроллером отдыха в качестве посредника. (Первая работа с датчиками) Пользовательский интерфейс состоит из имени датчика + кнопки переключателя для запуска или остановки отправки данных датчика. Я пытаюсь отрегулировать объем передаваемых данных датчиков, потому что мое приложение для Android просто не успевает за некоторыми датчиками, когда они начинают отправку данных, мой пользовательский интерфейс просто блокируется. Я тестировал с эмулятором и датчиками, на которых есть золотая рыбка, они работают нормально, датчик вектора вращения игры, датчик гравитации, и немногие другие просто начинают посылать большую часть данных, и приложение не может идти в ногу. (Я отправляю данные с новым потоком каждый раз).

SensorManager.registerListener(sensorEventListener,sensor,500000000);

Изменение сэмплированияПериод просто не помогло, некоторые датчики работают нормально, а некоторые просто продолжают посылать большую часть данных независимо от числа.

Я пытался, чтобы при каждом событии смены датчика новый поток начинался с отправки данных, чтобы пользовательский интерфейс работал нормально, но мое приложение не справляется с некоторыми из датчиков.

public void onSensorChanged(SensorEvent sensorEvent) {
Thread t = new Thread(new MyOwnRunnableClass(sensorEvent,username));
t.start();
}

Ответы [ 2 ]

0 голосов
/ 11 ноября 2019

второй способ: вы можете установить предыдущее время в общих настройках и в методе OnSensorChanged, чтобы проверить, если разница данных текущего и последнего времени превышает 500000, установить ваши данные.

первый способ: вы можете использовать диспетчер аварий дляделать это каждые 500000 с;

0 голосов
/ 10 ноября 2019
  1. Создание собственного приложения для изучения датчика
  2. Не создавайте поток каждый раз, когда датчик обновляется, потому что каждый поток генерирует нагрузку. Вы хотите, чтобы один поток управлял датчиками, другой - для пользовательского интерфейса. Этого должно быть достаточно.
  3. Ваш сенсорный поток может сбросить показания, если их слишком много для вашей потребности (просто обработайте один из десяти)
  4. Скорость выборки, используемая для работы более или менее, когда я привык кРазработка на Android.
  5. Прочитайте учебные пособия, использование сенсоров является ключевым в мобильном, поэтому у каждого фреймворка есть учебные пособия о том, как сделать это правильно

Удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...