Я нахожусь на начальных этапах написания пошаговой игры для Android. В настоящее время я планирую, что это будет один игрок, где игрок играет против AI. Это будет довольно сложная игра, и, поскольку она пошаговая, многие вычисления и работа должны быть выполнены после каждого поворота игрока (каждый из AI должен вычислить и «повернуть»). В настоящее время я занимаюсь идеей делать все, что работает в service
. Как только игрок закончит свою очередь, основное действие приложений создаст новую услугу. Служба выполнит все вычисления для ИИ (в отдельном потоке из основного Действия), а основная активность покажет некоторую анимацию загрузки, указывающую, что игроки AI «думают».Управление службами на Android
Причина, по которой я хочу воспользоваться этим подходом, заключается в том, что если пользователь закрывает приложение, в то время как ИИ все еще «в свою очередь», служба все равно сможет выполнять все вычисления, даже если основная деятельность убит системой.
Я все еще сглаживаю много деталей, но я столкнулся с несколькими вопросами. Рассмотрим случай, когда пользователь заканчивает свою очередь, служба создается и запускается, и пока служба работает успешно, пользователь закрывает приложение, основное действие приложения уничтожается системой, а затем пользователь решает открыть приложение еще раз. Когда приложение открывает следующие должно произойти:
- Основное направление деятельности необходимо проверить и посмотреть, если служба по-прежнему работает, и если это ...
- После того, как служба заканчивает свою работу, его необходимо сообщить основную деятельность (при условии, что пользователь снова открыл приложение, и основное действие в настоящее время выполняется), что оно завершено до его уничтожения.
Так что у меня следующие вопросы:
- Есть ли способ для моей деятельности, чтобы проверить и посмотреть, если служба по-прежнему работает *
- Есть ли способ для службы, чтобы сказать? основное действие, которое оно завершено, без основного участия в опросе?
* Я видел некоторые ответы на подобные вопросы, предлагающие использование глобальных переменных, но поскольку мне неоднократно говорили бесчисленные профессора и коллеги, чтобы избежать как можно большего числа глобальных переменных, я Я пытаюсь понять, есть ли более элегантное решение.