Сборник тестов: 1500 вопросов и ответов на знание Android
Шрифт:
использовать шаблоны в методе 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