Не работает долгое нажатие андроид

Долгое нажатие кнопки

Заблокировать долгое нажатие на кнопку HOME
Здравствуйте! Как заблокировать долгое нажатие на кнопку HOME в своем приложении? P.S. Android.

Определить нажатие кнопки Home и кнопки сворачивания приложения
По аналогии с backPressed: @Override public void onBackPressed()

Не обрабатывается нажатие кнопки
ImageView btn1 = new ImageView(this); btn1.setImageResource(R.drawable.gorod_cveta_button1);.

Реакция кнопки на нажатие
Стандартная кнопка визуально реагирует на нажатие. А когда изменяешь фон кнопки, то всякая.

Отловить нажатие кнопки Done
Activity имеет элемент EditText ( android:inputType=»number») подскажите как отловить нажатие DONE?

AsyncTask, отловить нажатие кнопки
Здравствуйте! Есть такой код class RequestTaskT extends AsyncTask <.

Обработать нажатие на кнопки в уведомлении
Еще раз здравствуйте. Дело такое. Есть уведомление, в нем две кнопки. Они должны выполнять.

Не срабатывает нажатие кнопки в Dialog
Необходимо при запуске окна, запрашивать от пользователя логин. Если логин введен — приложение.

Отловить нажатие кнопки Home
Всем привет! Как отловить нажатие кнопки Home. В onKeyDown не получается. Какие ещё варианты?

Долгое нажатие на кнопку с прогресс-баром
Как сделать, чтобы при нажатию на кнопку появился на экране прогресс бар, который двигался от 100%.

Источник

Обнаружение длительного нажатия с Android

в настоящее время я использую

чтобы определить, когда пользователь нажимает мой glSurfaceView есть способ определить, когда длинный щелчок сделан. Я предполагаю, что если я не могу найти много в документах dev, то это будет своего рода работа вокруг метода. Что-то вроде регистрации ACTION_DOWN и просмотра, как долго это до ACTION_UP.

Как вы обнаруживаете длинные нажатия на android с помощью opengl-es?

8 ответов

GestureDetector — Это лучшее решение.

вот интересная альтернатива. В onTouchEvent на каждые ACTION_DOWN запланируйте запуск в 1 секунду. На каждом выполняется или ACTION_MOVE, отменить запланированное выполнение. Если отмена происходит менее, чем 1С ACTION_DOWN событие, Runnable не будет работать.

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

Я подтверждаю, что он работает так, как я использовал его в своем собственном приложении.

когда вы имеете в виду пользователь нажимает, вы имеете в виду щелчок? Щелчок когда потребитель отжимает вниз и после этого немедленно поднимает вверх палец. Поэтому он охватывает два события onTouch. Вы должны сохранить использование onTouchEvent для вещей, которые происходят на начальном касании или после выпуска.

таким образом, вы должны использовать onClickListener если это нажать.

ваш ответ аналогичен: используйте onLongClickListener.

решение MSquare работает только в том случае, если вы держите определенный пиксель, но это необоснованное ожидание для конечного пользователя, если они не используют мышь (чего они не делают, они используют пальцы).

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

Я создал фрагмент — вдохновленный фактическим источником просмотра-который надежно обнаруживает длинные клики / прессы с пользовательской задержкой. Но это в Котлине:

идея создания Runnable для выполнения длинного щелчка в будущем, но это выполнение может быть отменено из-за щелчка или перемещения.

Вам также нужно знать, когда длинный щелчок был потреблен, и когда он отменен, потому что палец переместился слишком много. Мы используем initialTouchX & initialTouchY для проверки выхода пользователя из квадратной области 10 пикселей, по 5 с каждой стороны.

вот мой полный код для передачи Нажмите & LongClick С Cell на ListView в Activity С OnTouchListener :

Читайте также:  Можно ли восстановить удаленные аудиозаписи с андроида

ClickDelegate это interface для отправки событий click в класс обработчика, например Activity

и все, что вам нужно, это реализовать его в своем Activity или родитель View если вам нужно делегировать поведения:

Источник

Русские Блоги

Долгое нажатие Android Edittext не вызывает контекстное меню

Краткое описание проблемы

когда RecycleView В EditText При повторном использовании прокрутки вверх и вниз я обнаружил, что долгое нажатие EditText Контекстное меню не появляется

анализ

После волны отладки я обнаружил, что при нормальных обстоятельствах при долгом нажатии TextView из performClick() Функция возвращает true , Когда нет всплывающего контекста, эта функция возвращает fasle

Первая находка TextView Длительное пресс-мероприятие performLongClick() , Посмотрите его исходный код

Сначала выполните отладку

  • super.performLongClick() Вернуться к false
  • mEditor.performLongCLick() Вернуться к true

Отладка, когда меню не появляется

  • super.performLongClick() Вернуться к false
  • mEdit.performLongClick() Вернуться к false

Тогда проблема в том mEdit.performLongClick() Выше смотрите исходный код

  • mInsertionControllerEnabled Да true

Отладка, когда меню не появляется

  • mInsertionControllerEnable За false

Тогда проблема находится mInsertionControllerEnabled Логическое значение члена, ищущее место, где атрибут этого члена был изменен, найдено в Editor#prepareCursorControllers Внутри просмотрите исходный код

Здесь вы можете увидеть, где проблема, без отладки ViewGroup.LayoutParams params = mTextView.getRootView().getLayoutParams(); Это предложение, если в ViewHolder Если выполняется при связывании данных, он никогда не может быть WindowManager.LayoutParams Потому что в это время EdtiText Не был attachToWindow

решение

Теперь, когда я знаю, что это EditText Не существует attachToWindow Когда называется Editor#prepareCursorControllers Функция, тогда я attachToWindow Разве потом не достаточно снова вызвать эту функцию?

Поскольку это метод разрешения пакетов, вам нужно найти косвенный вызов и найти setCursorVisible Метод вызывается, пока onAttachToWindow Сначала установите false А затем установите true Вот и все

Источник

Телефон без тормозов: как значительно ускорить работу смартфона

Наверное, каждому знакома ситуация, когда спустя недолгое время после покупки смартфон начинает работать заметно медленнее. Чаще всего от этого страдают наши родители и дети, которым мы по “наследству” передаем свои старые устройства. Сегодня мы рассмотрим несколько наиболее эффективных решений данной проблемы: от самых простых до в меру продвинутых действий.

И хотя все “иллюстрации” будут приведены для Android, но в большинстве своем все они актуальны и для других мобильных операционных систем.

Освобождаем место для системы

Для начала обратите внимание на то, сколько у вашего телефона осталось свободной памяти. Это можно сделать, зайдя в «Настройки» и там перейдя в «Хранилище». Для корректной работы системы необходимо иметь небольшой запас дискового хранилища. Если же места нет, то система пытается его выделить, освобождая свои резервы. А на это уходит то самое дополнительное время, которое мы с вами и наблюдаем, как «тормоза». Я рекомендую следить, чтобы было свободно не менее 5 Гб памяти. Чем больше, тем лучше.

Здесь мы встречаемся с первой важной проблемой, где же это место найти. Ведь все в нашем телефоне нам нужно.

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

Ну и не забываем о возможности перекинуть данные в облако или на внешний хранитель (карту памяти, флешку или жесткий диск).

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

Читайте также:  Мышка через usb для android

Следующим шагом имеет смысл удалить те приложения, которыми вы не пользовались как минимум 3 недели. Память под приложения в системе имеет строго ограниченный объем, который не зависит от оставшегося места на диске. То есть бывает такое, что памяти вроде еще много, а в вверху горит значок о том, что все место кончилось. В этом случае лучше какие-нибудь программы удалить.

Здесь будьте внимательны! Удалять нужно само приложение, а не иконку на заглавном экране (проверить это можно через меню «Настройки» — «Приложения»).

Бывает и такое, что некоторые программы удалить нельзя в принципе. Тогда постарайтесь их хотя бы “отключить”. Эту функцию они сами предлагают вместо удаления.

Режим энергосбережения

Обратите особое внимание и на то, чтобы режим энергосбережения был отключен либо установлен как «оптимальный». Это также может дать заметный прирост в скорости. В попытках продлить работку аккумулятора, система может искусственно занижать частоту работы процессора. В нашем случае — это абсолютно лишнее.

Виджеты

Значительную нагрузку на систему оказывают также установленные на заглавном экране виджеты (такие как погода, курс доллара, новости и всякое другое). С ними, конечно, красиво и очень наглядно, но за это приходится платить откликом операционной системы. Например курсы валют мы смотрим не чаще раза в день, а новости вообще можно вызвать на экран в тот момент, когда у нас на них есть время.

Обычно я рекомендую отключить все, что вы используете менее раза в день. А потом, при необходимости, можно вернуть, если что-то вдруг понадобилось.

Очищаем кэш браузера и системы

Для продвинутых пользователей я лично рекомендую очистить кэш браузера и системы. Кэш это информация, которая загружается на ваш смартфон, например, при открытии любого сайта. По ходу использования такая информация копится и может достигать нескольких гигабайт. При этом никакой полезной работы вся эта куча не делает. По факту — это просто мусор, который надо время от времени вычищать.

Для начала выполним очистку в браузере. Для этого в настройках перейдем – «История» — «Очистить историю» и там нажать “Удалить данные”. За непосредственно кэш отвечает третья галочка сверху.

У приложений тоже скапливается подобный мусор, но его очистить немного сложнее. Например, в телефонах Xiaomi нужно зайти в раздел «Хранилище» — «Данные кэша» и согласится на его очистку. У других производителей для этих целей имеются специальные, вшитые в систему программы. У Самсунг, например, это «Обслуживание устройства», а у менее известных брендов «Менеджер хранилища».

Также эту функцию можно осуществить из системного меню, зажав при старте аппарата громкость вверх и кнопку включения. Там нужно войти в меню «Recovery» и выполнить функцию «Wipe Cache» и выбрать «Yes». Больше там ничего там не трогайте!

Еще один способ очистки

Эти же действия можно осуществить и установив специальные приложения из Play Market, например, «One Booster», «Booster Master» и «Ant Booster». Подобных приложений целая куча.

Однако, через системные функции будет намного надежнее. После оптимизации обязательно удалите все эти “бустеры”, так как ресурсы они жрут будь здоров. То есть, установили — почистили- удалили.

Промежуточные итоги

Так мы очистили место в общей памяти, удалили ненужные приложения и виджеты и почистили кэш. Этих действий уже достаточно, чтобы на собственном опыте ощутить значительный прирост скорости работы смартфона.

Данная процедура лично у меня занимает от 3 до 5 минут, после чего даже старенькие телефоны родителей начинают “бегать” заметно шустрее.

Далее рекомендуется выключить и включить телефон снова. Обратите внимание! Не перезагрузить, а именно выключить, а затем включить. Это очень разные процессы и только полное отключение позволяет очистить служебные области памяти.

Визуальное обнаружение «тяжелых» программ

Не менее полезно будет войти в настройки аккумулятора обратить внимание на те приложения, которые больше других нагружают систему. У меня, как видите, есть возможность скрыть системные процессы, с которыми мы сделать ничего не можем, и показывать только установленные мною приложения. В числе таких гигантов я лично заметил, например, популярную сеть Тик Ток и Фейсбук.

Читайте также:  Doodle jump android при

Автозагрузка

Также у некоторых смартфонов есть встроенный редактор автозагрузки приложений. Ну или его можно также на один раз установить из магазина приложений. Для примера можно привести «Boot Apps» или «Auto Start Manager». Таких программ тоже очень много.

Устанавливаем приложение, даем ему разрешения и в нем уже отключаем вообще все. Это позволит нам при старте системы сохранить максимальное число оперативной памяти и загружать туда только то, что действительно необходимо. Было такое, что в автозагрузку себя прописывали даже разные игры, установленные «от нечего делать». Подобный расход полезных мощностей должен быть немедленно пресечен.

Системное ограничение числа фоновых процессов

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

Главное придерживаться разумного их количества. Восемь-десять социальных сетей в активном режиме даже современный флагман могут неслабо так нагрузить, что уж говорить о аппаратах пятилетней давности.

Однако у тех же смартфонов Xiaomi я нашел интересную функцию, позволяющую выгружать некоторые приложения из памяти. Это полезно, так как на социальные сети можно поставить запрет, а, например, на тайм киллер — нет.

Однако ставить для этих целей какие-нибудь внешние менеджеры я лично не рекомендую. Так что внимательно изучите настройки производительности своего устройства. Может там есть что-то еще удобнее.

Альтернативная память для системы

Еще один интересный прием пригодится, если вы купили актуальный, но достаточно бюджетный “китайский” телефон для своих родителей или ребенка. У меня вот как раз такой случай. Проблема тут заключается в том, что обычно в них экономят на всем, включая даже системную память. То есть она тут банально очень медленная. Но решение есть. Достаточно установить в такой смартфон любую современную карту памяти и назначить ее системной.

Сделать это очень просто, достаточно установить такую карточку в смартфон и включить его. Телефон сам спросит использовать данную карточку в виде системной памяти или просто как внешний накопитель. Выбирайте первый пункт и сами увидите насколько положительно это скажется на скорости работы.

Без подобного финта мой старый XGODY буквально ходил пешком, теперь же им вполне можно пользоваться.

Если ничего не помогло

Однако бывают ситуации, когда даже эти методы оказываются неэффективными. В этом случае поможет полный сброс устройства до заводских настроек. Обычно эта функция находится в «Настройки» — «Система» — «Сброс настроек». Предварительно обязательно сохраните все важные вам данные в облако, на флешку или в любое другое место, поскольку все это будет принудительно удалено. Сам я обычно делаю бэкап системы и переношу папку с ним на компьютер, чтобы после процесса очистки снова развернуть на систему. Но это лучше придержать на совсем уж крайний случай.

Послесловие

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

Источник

Оцените статью