Реализовали ли вы onDestroy()
? Если нет, то я считаю, что это может быть решением - и вы остановите свой Timer
или все, что вы используете для запуска службы в onDestroy()
.
Службу можно остановить, вызвав ее метод stopSelf () или вызвав Context.stopService ().
См. Эту ссылку для получения дополнительной информации.
Я не знаю, есть ли задача Ant для git (я немного погуглил безуспешно), в любом случае Ant может обновить файл свойств с помощью параметра Петра ( git rev-parse HEAD
), а затем во время выполнения используйте эти свойства для получения номера редакции. Это чище и удобнее для IDE , чем создание Ant файла .java.
Вы можете получить SHA последней фиксации с помощью
git rev-parse HEAD
, но, как правило, гораздо полезнее использовать
git describe
, который даст вам что-то похожее на это:
v0.7.0-185-g83e38c7
Это работает, если вы есть теги - он сообщит вам, сколько коммитов из последнего действительного тега, в котором находится ваша текущая проверка, плюс частичный SHA для этой фиксации, поэтому вы можете использовать его для основы проверки позже. В большинстве случаев вы можете использовать этот идентификатор как SHA, но он гораздо удобнее для чтения человеком.
Во-первых, вы можете использовать identity
gitattribute с ключевым словом $ Id $
(хотя, вероятно, это не то, что вам нужно; это хэш содержимого файла и не имеет ничего общего с текущей версией проекта).
Во-вторых, вы можете сделайте это так, как это делают ядро Linux и сам Git: в Makefile (в вашем случае: в файле Ant) есть правило, которое заменяет какой-то заполнитель, обычно '@@ VERSION @ @' (но в случае Perl это '++ VERSION ++ ') по результату GIT-VERSION-GEN , который, в свою очередь, использует " git describe " . Но для того, чтобы это было полезно, вы должны пометить свои выпуски (используя аннотированные / подписанные теги).
git rev-parse HEAD
напечатает то, что вы, вероятно, захотите (например, идентификатор HEAD
фиксация).
Вы можете заставить ant сгенерировать простой Java-класс с этим идентификатором в качестве статической константы.