Сборник тестов: 1500 вопросов и ответов на знание Android Машнин Тимур
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»);
context. getPackageManager (). checkPermission («android. permission. MODIFY_PHONE_STATE», "com.company. app»);
context.getPackageManager(). checkPermission("com.company. app», «android. permission. MODIFY_PHONE_STATE»);
context. getPackageManager (). checkPermission («android. permission. CALL_PHONE», "com.company. app»);
Вопрос 36
Что произойдет в том случае, если элемент <application> и элемент потомок <activity> имеют атрибуты иконок и меток?
значения <activity> переопределяют значения <application>
из-за двусмысленных значений при компиляции будет выдано сообщение об ошибке
ни одно значение не сможет быть использовано, так как Android не может определить, какое будет иметь приоритет
из-за двусмысленных значений во время выполнения будет выдана ошибка
значения <activity> всегда игнорируются
Вопрос 37
public class CustomerDBHelper extends SQLiteOpenHelper {
CustomerDBHelper (Context context) {
super (context, «CustomerDatabase», null, 1);
}
@Override
public void onCreate (SQLiteOatabase db) {
db. execSQL («CREATE TABLE customers (lastName TEXT);»);
}
}
Почему данный класс НЕ может быть скомпилирован?
не выполнен метод onUpgrade ()
