Как стать автором
Обновить

Комментарии 13

а как можно увеличить скорость отклика приложения?
Если вы об onDeviceReady(), то никак. Он вызовется сразу, как только приложение получит доступ к функционалу мобильного устройства.
Можно вместо click эвентов использовать touchend. Это уберёт задержку в 300ms.
ясно, спасибо.
А мне не понравилось:
1) Оформление статьи. Скрины экрана телефона не помещаются на экран моего монитора.
2) Период в 5 сек. Замерьте, пожалуйста, через какой промежуток времени ваше приложение сожрет всю батарею. Даже если это просто пример, не мешало бы написать, что так делать совсем не стоит.
3) Про «на форумах утверждали, что создать полноценный фоновый процесс на Cordova невозможно» совершенно правильно написано. То что вы добавили «START_STICKY», еще ничего не значит, так как это работает не всегда. Так как вы и так выводите notification, надо было делать foreground службу. Почитайте эту статью habrahabr.ru/post/265159

Резюмирую: пока плохо.
Отвечу по тому же плану:
1) Скрины не умещаются по высоте. Действительно недочет, но изображение можно открыть в новой вкладке. Больше такого допускать не буду.
2) Разумеется, каждые 5 секунд отправлять push-notification не нужно. Столь короткий промежуток я сделал для отладки. Если бы я поставил минуту, то мне бы пришлось ждать целых 60 секунд после закрытия приложения для того, чтобы убедиться, что сервис работает даже после закрытия приложения.
3) Под полноценным фоновым процессом я подразумеваю не тот, который, подобно вирусу, не позволяет себя завершить, а тот, который работает даже после закрытия приложения и завершения всех Activity. Рекомендованную Вами статью прочитал, push-уведомления действительно удобно отправлять через startForeground(). Но foreground работает лишь с уведомлениями, а я хотел показать, что возможно создать фоновый процесс, который может выполнять и другие задачи. В таком случае лучше подходит просто липкий Service.

Ваши замечания я принял во внимание.
Вы, видимо, невнимательно прочитали статью. На KitKat ваш пример не будет работать ожидаемо. А именно, «после закрытия приложения и завершения всех Activity» служба работать не будет. И, пожалуйста, не путайте push-уведомления и notification. К чему я пишу это. Ваша статья может оказаться немного «вредной» для людей, кто просто решит взять ваш плагин, не разбираясь, что к чему. Неплохо было бы его доработать, выложить на гитхаб. Тогда бы этот плагин несомненно стал полезным и нужным.
Учту)
даже после того, как мы его закроем.

А что будет если перезагрузить телефон, приложение будет автоматический загружено в фон?
Чтобы сделать автозагрузку при старте, нужно поработать с AndroidManifest.xml. В Cordova это сделать вполне возможно. Используя широковещательный приемник, можно отследить событие запуска и запустить сервис. Здесь Вы можете найти пример
Как мне кажется, проблема в том, что описывается написание плагина на нативном коде и все… а само приложение у нас работает на чем?
С таким же успехом можно писать нативное приложение. Я понимаю что это пример «как прикрутить плагин», но без обратной связи с основным кодом приложения толку для меня лично 0.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации