Такое поведение логично. Обработчик срабатывает именно при изменении состояния. Состояние по-умолчанию — «вне зоны». То есть для Enter — телефон был вне зоны > приложение инициаизировалось > телефон оказался в зоне > изменение состояния вызывает обработчик. Для Exit — телефон был вне зоны > приложение инициаизировалось > телефон оказался вне зоне > изменение состояния не произошло.
Если хотите имитировать — задавайте фейковые координаты. Для этого можно использовать либо готовые проги (например, Lockito), либо в режиме дебага через telnet, либо самописное что-то)) Я использовал последний вариант, но сейчас бы наверное взял готовую прогу.
Если вы хотите получать координаты с заданной периодичностью, то задавать геозоны нет необходимости. В данном случае вам лучше использовать другую часть данных API — LocationRequest
Если хотите имитировать — задавайте фейковые координаты. Для этого можно использовать либо готовые проги (например, Lockito), либо в режиме дебага через telnet, либо самописное что-то)) Я использовал последний вариант, но сейчас бы наверное взял готовую прогу.