Категории
Самые читаемые
Лучшие книги » Компьютеры и Интернет » Программное обеспечение » Сборник тестов: 1500 вопросов и ответов на знание Android - Тимур Машнин

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

Читать онлайн Сборник тестов: 1500 вопросов и ответов на знание Android - Тимур Машнин

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 39 40 41 42 43 44 45 46 47 ... 73
Перейти на страницу:

Process. checkCaller ()

Вопрос 20

Реализован простой класс, осуществляющий SQLiteOpenHelper. Также данный класс содержит методы для выполнения различных операций с базами данных, таких как создание записей клиентов. Большинство операций используют простой метод execSQL (). Однако существует более сложная операция, требующая псевдонимы столбцов. Какой класс может быть использован для создания более сложных SQL запросов?

ExtendedQueryBuilder

SQLiteComplexQuery

ComplexQueryHelper

SQLiteQueryBuilder

EnhancedSQLiteQuery

Вопрос 21

1: boolean mExternalStorageAvailable = false;

2: boolean mExtemalStorageWriteable = false;

3: String state = Environment. getExternalStorageState {);

4:

5: if (Environment. MEDIA_MOUNTED. equals (state)) {

6: mExternalStorageAvailable = mExternalStorageWriteable = AAA;

7:} else if (Environment. MEDIA_MOUNTED_READ_ONLY. equals (state)) {

8: mExternalStorageAvailable = BBB;

9: mExternalStorageWriteable = CCC;

10:} else {

11: mExternalStorageAvailable = mExternalStorageWriteable = DDD;

12:}

Необходимо установить значения флагов mExternalStorageAvailable и mExternalStorageWriteable, которые позволят корректно отобразить состояние внешнего устройства. Какие значения должны быть вместо AAA, BBB, CCC и DDD (строки 6, 8, 9 и 11 соответственно)?

false, true, false, true

true, true, false, false

true, false, false, true

false, false, true, true

true, false, true, false

Вопрос 22

public class MainActivity extends Activity {

@Override

public void onCreate (Bundle savedInstanceState) {

super. onCreate (savedlnstanceState);

setContentView (R. layout. main);

getLoaderManager (). initLoader (0, null, this);

}

@Override

public Loader <Cursor> onCreateLoader (int id, Bundle args) {

// Create and return a new Loader

}

}

Как убедиться что onCreateLoader () запускается, когда нужен новый Loader?

получить ссылку на загрузчик в методе, отличном от onCreate ()

передать значение, отличное от NULL, в качестве второго аргумента метода initLoader ()

сделать MainActivity производным классом от LoaderManager

вызвать createLoader () вместо initLoader ()

нужно, чтобы MainActivity мог выполнять интерфейс LoaderManager. LoaderCallbacks

Вопрос 23

Разрабатывается приложение, в котором должна быть возможность добавлять события в пользовательский календарь. В файле AndroidManifest. xml не нужно настраивать никакие дополнительные разрешения. Как достигнуть данной цели?

использовать CALENDAR. INSERT, отправляя детали события как POST параметры

вставить данные напрямую, через доступ к основной XSL базе данных

запросить разрешение WRITE_CALENDAR о времени выполнения приложения, используя метод PermissionManager. grantRuntimePermission ()

отправить детали события как XML файл и активировать действие, позволяющее заполнить календарь

использовать INSERT и отправить детали события как дополнительные данные

Вопрос 24

public class greeter {

public String buildGreeting (String firstName) {

String greetingl = «Hello, ";

String greeting2 =», and welcome to the application!»;

return greetingl + firstName + greeting2;

}

public StringBuffer getGreeting (String firstName) {

StringBuffer sb = new StringBuffer ();

sb. append (buildGreeting (firstName));

return sb;

}

}

Как вызвать метод getGreeting (), не создавая временных объектов?

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

изменить параметры доступа к buildGreeting (), для того чтобы объекты можно было добавлять напрямую в класс StringBuffer

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

использовать шаблоны в методе buildGreeting () вместо сложения строк

использовать более эффективный класс ParallelStringBuffer вместо StringBuffer

Вопрос 25

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

VM использует ID потока, который и отображается в процессе трассировки

приоритет потоков не определен, из-за чего один из них блокируется при трассировке

трассировка не может засечь более одного потока в одно и то же время

потоки выполняются очень быстро, и трассировка не может засечь каждый

VM экономит ресурсы, объединяя несколько потоков в один

Вопрос 26

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

completeService ()

releaseService ()

stopService ()

unbindService ()

destroyService ()

Вопрос 27

1: public class ProgressTestActivity extends Activity {

2:

3: private Handler handler;

4: private ProgressBar progress;

5:

6: @Override

7: public void onCreate {Bundle savedInstanceState) {

8: super. onCreate (savedInstanceState);

9: setContentView (R. layout. main);

10: progress = (ProgressBar) findViewById (R. id. progressBar);

11: handler = new Handler ();

12:}

13:

14: public void startProgress (View view) {

15: Runnable runnable = new Runnable () {

16: @Override

17: public void run () {

18: for (int i = 0; i <= 10; i++) {

19: final int value = i;

20: try {

21: Thread. sleep (2000);

22:} catch {InterruptedException e) {}

23: handler. post (new Runnable () {

24: @Override

25: public void XXX () {

26: progress. setProgress (value);

27:}

28:});

29:}

30:}

31:};

32: new Thread (runnable). start ();

33:}

34:}

Какой метод заменит XXX в 25-й строке, для того чтобы progress bar периодически обновлялась?

handleMessage

post

execute

run

update

Вопрос 28

LocationManager manager =

(LocationManager) getSystemService (Context. LOCATION_SERVICE);

Criteria criteria = new Criteria ();

criteria. setAccuracy (Criteria. ACCURACY_LOW);

String provider = manager. getBestProvider (criteria, false);

Location location = locationManager. getLastKnownLocation (provider);

Чтобы убедиться, что точность расположения менее, чем 100 метров, нужно:

вызвать getHighAccuracyLocation () вместо getLastKnownLocation ()

использовать ACCURACY_FINE вместо ACCURACY_LOW

передать Context. LOCATION_SERVICE_ACCURATE в метод getSystemService ()

вызвать метод enhancedAccuracy (true) в объекте Location

передать ИСТИНА в качестве значения конструктора Criteria

Вопрос 29

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

добавить фильтр действия в файле AndroidManifest. xml

убедиться, что действие является расширением класса LaunchableActivity

добавить разрешение ACTIVITY_IMPLICITLY_LAUNCHABLE в файл AndroidManifest. xml

вызвать setLaunchable (true) в методе действия onCreate ()

передать ключевое значение «implicitLaunch: true» в Intent, используя запущенное действие

Вопрос 30

// onCreate () method from your searchable Activity class

@Override

public void onCreate (Bundle savedInstanceState) {

super. onCreate (savedInstanceState);

setContentView (R. layout. search);

Intent intent = getIntent ();

if (Intent. ACTION_SEARCH. equals (intent. getAction ())) {

String query = intent. getStringExtra (SearchManager. QUERY);

doMySearch (query);

}

}

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

вызвать makeSearchable () после вызова setContentView ()

сконфигурировать действие, которое будет обрабатывать ACTION_SEARCH

обозначить класс действий в файле searchable. xml

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

добавить к классу поле public static boolean SEARCH_ENABLED со значением ИСТИНА

Вопрос 31

<LinearLayout android: orientation=«vertical»>

<Button android: id="@+id/Button1» />

<Button android: id="@+id/Button2» />

</LinearLayout>

Пример кода взят из макета XML файла. Необходимо убедиться, что Button 1 будет находиться в фокусе, после того как пользователь сместит курсор ниже Button 2. Какую конструкцию вы бы добавили?

android: nextFocusTop="@+id/Button1» к конфигурации Button2

android: nextFocusDown="@+id/Button1» к конфигурации Button1

android: nextFocusDown="@+id/Button1» к конфигурации Button2

android: nextFocus=«previousView» к конфигурации Button2

android: nextFocusTop="@+id/Button2» к конфигурации Button1

Вопрос 32

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

передать значение ИСТИНА в качестве второго аргумента конструктора Intent

установить для второго действия android: theme="@android: style/Theme. Dialog»

установить флаг ACTION_LAUNCH_DIALOG для запуска второго действия

для запуска второго действия вызвать метод startActivityAsDialog ()

убедиться, что для поля второго действия параметр AS_DIALOG установлено значение ИСТИНА

Вопрос 33

Какие четыре типа диалоговых окон есть в Android?

Alert, Progress, DatePicker, TimePicker

Feedback, Progress, DateTimePicker, Input

TextInput, Feedback, DataPicker, Toaster

Message, Progress, DatePicker, TimePicker

Immediate, Deferred, DataReciever, Progress

Вопрос 34

В проект импортированы файлы, которые размещены в папке /assets. Однако приложению нельзя ссылаться на данные файлы, используя сгенерированный файл R. java. Файлы можно сделать доступными приложению, если:

запустить перепостроение в среде Eclipse

переместить файлы в папку /bin

написать код, разрешающий доступ к файлам напрямую

обновить свойства проекта, установив dataFiles=true

отредактировать R. java и заставить файл ссылаться на себя

Вопрос 35

Требуется определить, разрешается ли пакету com.company. app начать телефонный звонок без обращения к Диалоговому интерфейсу. Какой фрагмент кода может быть использован для этого?

PackageManager.get("com.company. app»). validatePermission («android. permission. CALL_PHONE»);

context.checkPermission("com.company. app», «android. permission. CALL_PHONE»);

1 ... 39 40 41 42 43 44 45 46 47 ... 73
Перейти на страницу:
На этой странице вы можете бесплатно скачать Сборник тестов: 1500 вопросов и ответов на знание Android - Тимур Машнин торрент бесплатно.
Комментарии