Сборник тестов: 1500 вопросов и ответов на знание Android
Шрифт:
Разрабатывается приложение, в котором должна быть возможность добавлять события в пользовательский календарь. В файле AndroidManifest. xml не нужно настраивать никакие дополнительные разрешения. Как достигнуть данной цели?
использовать CALENDAR. INSERT, отправляя детали события как POST параметры
вставить данные напрямую, через доступ к основной XSL базе данных
запросить разрешение WRITE_CALENDAR о времени выполнения приложения, используя метод PermissionManager. grantRuntimePermission
отправить
использовать 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:}
Какой
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