Сборник тестов: 1500 вопросов и ответов на знание Android - Тимур Машнин 11 стр.


RotateAnimation. RELATIVE_TO_SELF, 0.5f,

RotateAnimation. RELATIVE_TO_SELF, 0.5f);

rotateAnim. setDuration (0);

rotateAnim. setFillAfter (true);

imgview. startAnimation (rotateAnim);

Все перечисленное.

Вопрос 33

Как получить фотографию с камеры в Android?

//make a folder " pics" to store pics taken by the camera using this

final String directory = Environment. getExternalStoragePublicDirectory (Environment. DIRECTORY_PICTURES) + "/pics/";

File nd = new File (directory);

nd. mkdirs ();

//what is the picture name?

String file = directory+" myfile"+".jpg";

File myFile = new File (file);

try {

myFile. createNewFile ();

} catch (IOException e) {}

Uri myUri = Uri. fromFile (myFile);

//prepare intent for starting camera

Intent in = new Intent (MediaStore. ACTION_IMAGE_CAPTURE);

in. putExtra (MediaStore. EXTRA_OUTPUT, myUri);

startActivityForResult (in, 1);

//////////////////////////////////////////////////////////////////////

//make a folder " pics" to store pics taken by the camera using this

final String directory = Environment. getExternalStoragePublicDirectory (Environment. DIRECTORY_PICTURES) + "/pics/";

File nd = new File (directory);

nd. mkdirs ();

//what is the picture name?

String file = directory+" myfile"+".jpg";

File myFile = new File (file);

try {

myFile. createNewFile ();

} catch (IOException e) {}

Uri myUri = Uri. fromFile (myFile);

//prepare intent for starting camera

Intent in = new Intent (MediaStore. ACTION_CAMERA);

in. putExtra (MediaStore. EXTRA_OUTPUT, myUri);

startActivityForResult (in, 1);

/////////////////////////////////////////////////////////////////////

Все перечисленное.

Вопрос 34

Как получить текущую дату в Android?

Calendar cal = Calendar. getInstance ();

SimpleDateFormat sdate = new SimpleDateFormat ("dd-MMM-yyyy");

String date = sdate. format (cal. getTime ());

Calendar cal = Calendar. getInstance ();

int sec = c. get (Calendar. SECOND);

SimpleDateFormat dateFmt = new SimpleDateFormat ("yyyyMMdd_HHmmss");

String date = dateFmt. format (new Date ());

Все перечисленное.

Вопрос 35

Как обмениваться данными между двумя приложениями?

Использовать файл

Использовать SQLite базу данных

Использовать контент-провайдер

Использовать content resolver

Вопрос 36

В чем разница между ContentValues и Cursor в SQLite?

ContentValues это пара имя-значение, используется для получения значений из таблиц базы данных. Объект ContentValues возвращается из функции query () объекта SQLiteDataBase. Cursor временный буфер, который передается в функции insert () и update () объекта SQLiteDataBase, чтобы обновить строки таблицы.

ContentValues это временный буфер, используется для вставки или обновления значений в таблицах баз данных. ContentValues объект передается в функции insert () и update () объекта SQLiteDataBase. Cursor объект это пара имя-значение, которое хранит результаты из SQLiteDataBase запроса.

ContentValues это временный буфер, используемый для получения значений из таблиц баз данных. ContentValues объект возвращается из функции query () объекта SQLiteDataBase. Cursor это пара имя-значение, которое передается в функции insert () и update () объекта SQLiteDataBase, чтобы обновить строки таблицы.

ContentValues это пара имя-значение, используется для вставки или обновления значений в таблицах баз данных. ContentValues объект передается в функции insert () и update () объекта SQLiteDataBase. Cursor это временный буфер, который хранит результаты из SQLiteDataBase запроса.

Вопрос 37

Чтобы обновить базу данных SQLite Аndroid приложения, могу ли я передать меньшее значение версии, чем предыдущая версия базы данных?

Helper класс считает, что мы всегда будем передавать номера версий в порядке возрастания для обновления.

Да, мы можем передать.

Мы не должны передавать какое-либо значение, система автоматически сгенерирует больший номер версии для следующей версии.

Вопрос 38

Можно ли вызывать getWritableDataBase () в основном потоке пользовательского интерфейса?

Да, это можно.

getWritableDataBase () не должен вызваться в любом потоке.

Это зависит от требований программирования. Если программист хочет, то да, тот метод можно вызывать в основном или фоновом потоке.

Нет, потому что, если этот метод занимает слишком много времени, чтобы создать все таблицы, то это может прервать основной поток.

Вопрос 39

Вызов метода helper. getWritableDatabase () всегда вызывает метод оnCreate () класса Helper?

Это будет вызвать метод Helper класса оnCreate (), только если база данных создается впервые.

Это будет вызвать метод Helper класса оnCreate () каждый раз.

Это будет вызвать метод Helper класса оnCreate () каждый раз, когда пользователь запускает это приложение.

Вопрос 40

Я хочу получить доступ к данным другого приложения в моем приложении. Мне нужно реализовать контент-провайдер в моем приложении или другое приложение должно его реализовать?

Вы должны использовать binder service.

Использовать binder service с контент-провайдером в вашем приложении.

Другое приложение для обмена данными должно реализовать контент-провайдер.

Ваше приложение должно реализовать контент-провайдер.

Вопрос 41

Какой жизненный цикл у контент-провайдера?

Все контент-провайдеры создаются (оnCreate ()) после загрузки телефона первый раз.

Функция контент-провайдера оnCreate () вызывается, когда первый раз клиент вызывает какие-либо функции провайдера с помощью content resolver.

Функция контент-провайдера оnCreate () вызывается каждый раз, когда клиент вызывает какие-либо функции провайдера с помощью content resolver.

Вопрос 42

В чем предназначение SQLiteOpenHelper?

Вспомогательный класс для управления созданием базы данных, для модернизации и управления версиями без потери состояния предыдущих данных.

Вспомогательный класс для управления созданием базы данных, управления версиями, а также вставкой/изменением/удалением/обновлением данных таблицы без потери состояния предыдущих данных.

Вспомогательный класс для вставки/обновления/удаления данных в таблицах с потерей состояния предыдущих данных.

Все перечисленное.

Вопрос 43

Как обновить базу данных SQLite Android приложения, прежде чем загрузить новую версию в Play Store?

Передайте новый номер версии для базы данных в функцию SQLiteOpenHelper (). Затем обновите базу данных в методе оnUpdate класса SQLiteOpenHelper.

Передайте новый номер версии для базы данных в функцию getWriteableDataBase (). Затем обновите базу данных в методе оnUpdate класса SQLiteOpenHelper.

Передайте новый номер версии для базы данных в функцию SQLiteOpenHelper (). Затем обновите базу данных в методе оnCreate () класса SQLiteOpenHelper.

Опубликуйте новое приложение с последней базой данных, не изменяйте старое приложение, это повредит существующее приложение.

Вопрос 44

Может одно приложение получить доступ к базе данных другого приложения непосредственно?

Да, это возможно.

Нет, это невозможно.

Нет, это невозможно, потому что sqliteDB всегда хранится во внутренней памяти приложение. Так что другие приложения не могут получить доступ к базе данных.

Даже если таблицы базы данных хранятся во внутренней памяти, с помощью Content Provider можно получить доступ к базе данных.

Вопрос 45

Как запустить content provider, используя намерение?

Это возможно. Контент-провайдер это также Android компонент, так что мы можем использовать намерение, чтобы запустить его.

Это невозможно. Используя намерение вы не можете вызвать content provider.

Это возможно не прямым способом, потому что мы можем использовать content resolver для связи с контент-провайдером.

Вопрос 46

Как использовать контент-провайдер? Будет ли он поддерживать shared preferences?

Он используется для хранения SQLiteData, сейчас shared preferences не поддерживаются ContentProvider.

Он используется для обмена данными приложения с внешним миром. Сейчас нет поддержки для shared preferences.

Он используется для связи с content resolver.

Он используется для содержания данных. Каждое приложение содержит одного ContentProvider по умолчанию.

Вопрос 47

В чем разница между ContentProvider и СontentResolver?

Они вообще не связаны друг с другом.

Контент-провайдер используется для обмена приватными данными с другими приложениями, тогда как контент-распознаватель общается от клиентской стороны с контент-провайдером.

СontentResolver используется для обмена приватными данными с другими приложениями, тогда как контент-провайдер общается от клиентской стороны с СontentResolver.

Контент-провайдер используется для хранения приватных данных, тогда как контент-распознаватель общается от клиентской стороны с контент-провайдером.

Вопрос 48

В чем разница между cursor и contentvalues?

Cursor это буфер, который содержит результат строки из таблицы базы данных в ответ на запрос.

Contentvalues используются для связи с content provider.

Contentvalues используются для передачи данных SQLite функции.

Вопрос 49

Как получить телефонный номер контакта из контент-провайдера приложения Контакты?

Используйте ContactsContract. Contacts. URI и сделайте запрос с помощью content resolver.

Используйте Contacts. Phone. URI и сделайте запрос с помощью content resolver.

Используйте ContactsContract. Contacts. URI и CommonDataKinds. Phone. CONTENT_URI, затем сделайте запрос с помощью content resolver.

Вопрос 50

Где SQLite база данных Android приложения хранится в памяти?

Во внутренней памяти приложения.

На SD Card.

На сетевом сервере.

По умолчанию она хранится во внутренней памяти, но также возможно, чтобы хранить ее на SD-карте.

Тест 12

Вопрос 1

Где хранить тяжелые структурированные данные в Android приложении?

Files

Sqlite

Preferences

Не хранить в SQLite, потому что она не приватная для приложения.

Вопрос 2

Почему мы должны создавать и модернизировать базу данных только в SQLiteOpenHelper?

Это является обязательным, чтобы обновлять базу данных только в SQLiteOpenHelper, иначе SQLite будет генерировать ошибку времени компиляции из соображений безопасности.

Потому что SQLiteOpenHelper обеспечивает уверенность, что база данных всегда в актуальном состоянии. Также SQLiteOpenHelper управляет потоками, если более чем один поток пытается получить доступ к базе данных.

Ничего из перечисленного.

Все перечисленное.

Вопрос 3

Как обновить таблицы базы данных?

Передать другой номер версии в возрастающем порядке и поместить весь код модернизации в методе onUpgrade () helper класса.

Передать другой номер версии в возрастающем порядке и поместить весь код модернизации в методе OnCreate () helper класса.

Передать другой номер версии в любом порядке и поместить весь код модернизации в методе onUpgrade () helper класса.

Передать другой номер версии в декрементном порядке и поместить весь код модернизации в методе onUpgrade () helper класса.

Вопрос 4

Что является асинхронным (занимает больше времени) создание Helper объекта или получение объекта SQLiteDatabase?

Создание Helper объекта занимает больше времени.

Мы не можем предсказать, иногда создание Helper объекта занимает много времени и иногда получение объекта базы данных может занять некоторое время. Мы не можем угадать, что является асинхронным.

Создание Helper объекта является синхронным и возвращает немедленно, тогда как getWritableDatabase может занять некоторое время, когда вы создаете базу данных впервые. Так что это может занять больше времени (асинхронное создание) впервые или когда мы обновляем базу данных.

Создание и получение sqlitedatabase объекта является асинхронным иногда, но мы не можем угадать, когда это будет асинхронно.

Вопрос 5

Запустить сервис из активности и закрыть активность, при этом, что произойдет с этим сервисом, будет ли он жив или мертв?

Сервис также будет убит.

Сервис будет жив в течение некоторого времени и будет убит Android сборщиком мусора.

Сервис будет работать вечно, никто не сможет остановить его сейчас, и будет утечка памяти.

Сервис будет продолжать работать в фоновом режиме, но это он может остановить себя сам, когда выполнит работу. Или другие компоненты также могут убить его, используя stopService (), или Android может также убить сервис в случае нехватки памяти.

Вопрос 6

Какая функция реализуется в классе bound service?

onCreate ()

onBind () и onUnbind ()

ServiceConnectionListener на клиентской стороне.

Все перечисленное.

Вопрос 7

Как обновить пользовательский интерфейс из сервиса, который имеет потоки?

Создать поток в классе сервиса и иметь непосредственный доступ к компонентам пользовательского интерфейса вашей активности.

Так как обновление интерфейса из другого потока непосредственно не представляется возможным, создать коммуникацию с главным UI потоком для обновления пользовательского интерфейса.

Использование Intent Service.

Все перечисленное.

Вопрос 8

Как запустить сервис с приоритетом переднего плана?

Сервис всегда работает в фоновом режиме, так как он не имеет пользовательского интерфейса, так что это не возможно.

startService (intent, boolean foreground); передать второй параметр true, чтобы сделать этот сервис с приоритетом переднего плана.

Установить приоритет сервиса в <service> теге в файле манифеста. если приоритет отличается от 0, тогда сервис будет на переднем плане.

startForeground (int id, Notification notification), используйте эту функцию в оnCreate () вашего сервиса.

Вопрос 9

Мое приложение имеет только сервис, и мой сервис выполняет тяжелую функциональность подключения к Интернету и получения данных, должен ли я создать поток или нет? Если это так, почему?

Да потому что сервис по умолчанию, без каких-либо потоков, использует основной поток.

Да потому что, если сервис и активность работают в одном потоке, это может привести к ANR ошибке.

Нет, вам не нужно создавать поток, потому что сервис создаст фоновый поток, когда кто-то запускает сервис.

Нет необходимости создавать новый поток в сервисе, это не требуется в этом случае. Потому что сервис работает в главном потоке. Так как наше приложение не имеет какой-либо активности, все будет ОК, если запустить сервис в главном потоке.

Вопрос 10

Как передать данные от активности сервису?

Передать данные в putextras намерения и использовать setResult ().

Передать данные в putextras намерения и использовать startService () с этим намерением.

Сохранить данные в общую базу данных и обеспечить доступ к ним как из активности, так и из сервиса.

Все перечисленное.

Вопрос 11

Как получить доступ к прогресс бару из сервиса?

Отправить ProgressBar идентификатор с помощью intent extras и получить доступ к нему в сервисе.

Сделать индикатор как статическую переменную в активности и получить доступ к переменной в сервисе.

Если вы хотите обновить интерфейс в сервисе, вызовите динамически зарегистрированный приемник в активности из сервиса. И обновите пользовательский интерфейс из этого динамического приемника этой активности.

Поместить все элементы управления пользовательского интерфейса в общем классе и получить к нему доступ из всех компонентов.

Вопрос 12

Какие значения возвращает метод onStartCommand () и когда они используются?

START_STICKY – в случае, если Android останавливает наш сервис силой, а затем перезапускает сервис, посылая нулевое намерение.

START_NOT_STICKY – в случае, если Android останавливает наш сервис силой, не перезапуская сервис, пока пользователь сам не перезапустит его.

START_REDELIVER_INTENT – в случае, если Android останавливает наш сервис силой, а затем перезапускает сервис, посылая повторно намерение.

Все перечисленное.

Вопрос 13

Как контролировать состояние подключения bound service?

Используя метод isServiceConnected (), который возвращает истину, если сервис подключен.

Используя метод onServiceDisConnected (), эта функция будет вызываться, если соединение нарушается.

Клиент может опрашивать сервис, доступен он или нет.

Используя класс ServiceConnection.

Вопрос 14

Предположим, мой сервис поддерживает и starting service и binding service, и в настоящее время два клиента запустили мой сервис и один клиент связался с моим сервисом. Через 5 минут клиент, который был связан с моим сервисом, отвязывается, а другой клиент останавливает мой сервис. В настоящее время мой сервис работает в памяти или выведен из памяти?

Сервис умер, но до сих пор в памяти.

Сервис мертв и выведен из памяти.

Сервис по-прежнему жив и в памяти.

Сервис все еще жив, но выведен из памяти.

Вопрос 15

Как реализовать IPC (inter process communication), используя Binder?

1. Создать сервис, реализовать оnCreate (), onBind (), onUnbind (), оnDestroy ()

2. Создать файл. aidl с интерфейсными функциями.

3. Реализовать автоматический генерируемый Binder класс заглушки в сервисе.

4. Возвратить объект этого класса заглушки из onBind ().

1. Создать сервис, реализовать оnCreate (), onBind (), onStartCommand (), onUnbind (), оnDestroy ().

2. Создать файл. aidl с интерфейсными функциями.

3. Реализовать автоматически генерируемый Binder класс заглушки в сервисе.

4. Возвратить объект этого класса заглушки из onStartCommand ().

Назад Дальше