1. Через пуши есть вероятность что пользователь отклычит пуши в настройках, и тогда все приложение накроется
2. Лучше java т.к. лучше паралеллится и есть хорошие сервера: netty, vert.x или akka :) . PHP создан, чтобы умирать
Есть проект состоящий из backend: scala/play/akka есть клиент в виде android (only java) приложения. В настоящий момент проект в полуживом состоянии, из-за большой занятости и даже не отбивает плату за хостинг. В дальнейшем возможно развитие ввиде сайта и iOs приложения. После выхода на окупаемость возможно оплата в соответствии с вкладом, если интересно anyd3v[at]gmail.com.
То как вы продемонстрировали делать нельзя, тк вылезет ошибка (не помню точно текст, но что то вроде: слишком долго работает бекграунд таск). Сталкнулся с этим когда достался легаси проект и проедидущий разработчик так работал с комет сервером.
на счет "никакие другие фоновые процессы не могу выполняться пока работает цикл." вы скорее всего не правильно запускаете таск: в зависимости от версии надо запускать или просто через excecute или через AsynkTask.runOnExcecutor
Как вариант решения описнного мной выше и вашего подхода вы можете сделать так: Запустить таск, дождаться выполнения запусмтить по новой со следующей "порцией" данных или следующем запросом на сервер
Возьмите spring framework. Требует определенных умственных усилий на старте, но потом окупится скоростью и гибкостью разработки. так же можете посмотреть на play 1/2, который не требует погружения в ЕЕ.
Судя по тексту ошибки у вас проблема с запросом. Текст "вставьте ";" для завершения Statemen" уж сильно напоминает ошибки, которые выдает база данных при не правильно составленном запросе.
У вас в классах
class TSParams {
public int MACDFast;
}
class Params extends TSParams {
public int MACDFast, MACDSlow, MACDMA;
}
одинаковое поле MACDFast, уберите его из Params и будет работать как ожидается.
When you declare a field with the same name as an existing field in a superclass, the new field hides the existing field. The existing field from the superclass is still present in the subclass, and can even be used ... subject to the normal Java access rules.
Вы запускаете приложение (именно java приложение) и устанавливаете ему хендлер, который видимо и отрабатывается при получении запросов. В случае же деплоя в контейнер ваш код по установке хендлера не будет выполнятся и соответственно вы и получаете текущее поведение. У вас 2 пути:
1. запускать ваше приложение как приложение java (java -jar ...)
2. в конфиге сервера прописывать ваш хендлер