Сборник тестов: 1500 вопросов и ответов на знание Android
Шрифт:
Вопрос 50
Ответ: По умолчанию она хранится во внутренней памяти, но также возможно, чтобы хранить ее на SD-карте.
Тест 12
Вопрос 1
Ответ: Sqlite.
Вопрос 2
Ответ: Потому что SQLiteOpenHelper обеспечивает уверенность, что база данных всегда в актуальном состоянии. Также SQLiteOpenHelper управляет потоками, если более чем один поток пытается получить доступ к базе данных.
Вопрос 3
Ответ:
Вопрос 4
Ответ: Создание Helper объекта является синхронным и возвращает немедленно, тогда как getWritableDatabase может занять некоторое время, когда вы создаете базу данных впервые. Так что это может занять больше времени (асинхронное создание) впервые или когда мы обновляем базу данных.
Вопрос 5
Ответ: Сервис будет продолжать работать в фоновом режиме, но это он может остановить себя сам, когда выполнит работу. Или другие компоненты также могут убить его, используя stopService , или Android может также убить сервис в случае нехватки памяти.
Вопрос 6
Ответ: Все перечисленное.
Вопрос 7
Ответ: Так как обновление интерфейса из другого потока непосредственно не представляется возможным, создать коммуникацию с главным UI потоком для обновления пользовательского интерфейса.
Вопрос 8
Ответ: startForeground (int id, Notification notification), используйте эту функцию в оnCreate вашего сервиса.
Вопрос 9
Ответ: Нет необходимости создавать новый поток в сервисе, это не требуется в этом случае. Потому что сервис работает в главном потоке. Так как наше приложение не имеет какой-либо активности, все будет ОК, если запустить сервис в главном потоке.
Вопрос 10
Ответ: Передать данные в putextras намерения и использовать startService с этим намерением.
Сохранить данные в общую базу данных и обеспечить доступ к ним как из активности, так и из сервиса.
Вопрос 11
Ответ: Если вы хотите обновить интерфейс в сервисе, вызовите динамически зарегистрированный приемник в активности из сервиса. И обновите пользовательский интерфейс из этого динамического приемника этой активности.
Вопрос 12
Ответ: Все перечисленное.
Вопрос 13
Ответ: Используя метод onServiceDisConnected , эта функция будет вызываться, если соединение нарушается.
Вопрос 14
Ответ: Сервис мертв и выведен из памяти.
Вопрос 15
Ответ: 1. Создать сервис, реализовать оnCreate , onBind , onUnbind , оnDestroy
2. Создать файл. aidl с интерфейсными функциями.
3. Реализовать автоматический генерируемый Binder
4. Возвратить объект этого класса заглушки из onBind .
Вопрос 16
Ответ: Если фоновая функциональность связана с активностью, использовать поток. Если нет, запустить сервис с потоком в нем.
Вопрос 17
Ответ: Да, вы можете иметь сервис, запущенный в главном потоке, только если вы не имеете какой-либо активности в главном потоке.
Вопрос 18
Ответ: Может привести к ANR (приложение не отвечает) ошибке, если ваше приложение имеет, по меньшей мере, одну активность, поскольку эта активность будет работать в потоке пользовательского интерфейса.
Вопрос 19
Ответ: Сервис не будет перезапущен системой Android, если метод onStartCommand вернет START_NOT_STICKY.
Вопрос 20
Ответ: Мы не можем назвать его языком. Это легковесный текстовый формат, который используется для обмена данными между двумя системами, подключенными к сети. Он является альтернативой XML способом передачи данных между системами.
Вопрос 21
Ответ: Number, String, Boolean, null, Array, Object.
Вопрос 22
Ответ: Если данные небольшие – использовать пространства имен, если данные большие, использовать JSON. JSON быстрее, чем XML, поэтому разбор и загрузка будут быстрее. Многие веб-сайты и сервисы, включая Twitter, facebook, Google, LinkedIn использует JSON, а не XML.
Вопрос 23
Ответ: Код состояния доступен в строке состояния, которая содержит статус результата ответа сервера.
Если код состояния <= 400, то это означает успешное выполнение на стороне сервера.
Вопрос 24
Ответ: Это не даст никакой ошибки, но может привести к ANR до 2.3 версии. но начиная с 3,0 это является обязательным, чтобы все сетевые соединения производились в отдельном потоке. Иначе во время выполнения будет исключение NetworkOnMainThreadException.
Если мы не будем использовать отдельный фоновый поток, начиная с версии 3.0, система будет бросать исключение времени выполнения.
Вопрос 25
Ответ: До Froyo (2.2) лучше использовать вариант DefaultHTTPClient или AndroidHttpClient, но после него лучше использовать HttpURLConnection.
Вопрос 26
Ответ: DefaultHttpClient client = new DefaultHttpClient ;
HttpPost post = new HttpPost (»http://mail.google.com/");
List <NameValuePair> params = new ArrayList <NameValuePair> (3);
params. add (new BasicNameValuePair («Email», "username@gmail.com»));
params. add (new BasicNameValuePair («Passwd», «password here»));
params. add (new BasicNameValuePair («signIn», «Sign in»));
post. setEntity (new UrlEncodedFormEntity (params));