В манифесте вы объявляете службу с помощью android:name=".Communication"
, это означает, что ваш класс обслуживания должен быть расположен в com.exercise.AndroidClient.Communication
Проверьте правильность пакетов. Обратите внимание, что «.» (точка) относится к корню вашего пакета (т.е. пакет, объявленный в манифесте). Например, если ваш пакет com.exercise.AndroidClient
, а ваш класс обслуживания находится под com.exercise.AndroidClient.services.Communication
, вам необходимо объявить службу следующим образом:
<service android:enabled="true" android:name=".services.Communication" />
Или указать полный пакет:
<service android:enabled="true" android:name="com.exercise.AndroidClient.services.Communication" />
Основное различие между таблицами EXTERNAL
и MANAGED
заключается в поведении удаления таблицы / раздела. Когда вы удаляете MANAGED
таблицу / раздел, местоположение с файлами данных также удаляется. При удалении таблицы EXTERNAL
местоположение с файлами данных остается без изменений.
EXTERNAL
и MANAGED
хранятся в месте, указанном в DDL . Вы можете создать таблицу поверх существующего местоположения с файлами данных, уже находящимися в этом местоположении, и это будет работать как для EXTERNAL
, так и для MANAGED
, не имеет значения.
Вы даже можете создать таблицы EXTERNAL
и MANAGED
поверх одного и того же местоположения, см. Этот ответ с более подробной информацией и тестами: https://stackoverflow.com/a/54038932/ 2700344
Если вы указали местоположение, данные будут храниться в этом месте для обоих типов таблиц. Если вы не указали местоположение, данные будут в расположении по умолчанию: /user/hive/warehouse/database_name.db/table_name
для управляемых и внешних таблиц.
См. Также официальные документы Hive по Управляемые и внешние таблицы
.