Сборник тестов: 1500 вопросов и ответов на знание Android - Тимур Машнин
Шрифт:
Интервал:
Закладка:
visible process (2)
Вопрос 29
Если приложение имеет одну активность, на которой отображается диалоговое окно, тогда какой приоритет у процесса?
foreground process (1)
service process priority (3)
empty process (5)
visible process (2)
Вопрос 30
Если приложение имеет одну активность – в фоновом состоянии, сервис – в рабочем состоянии на переднем плане, тогда какой приоритет у процесса?
foreground process (1)
service process priority (3)
empty process (5)
visible process (2)
Вопрос 31
Какая проблема со следующим кодом?
public class UiprogramActivity extends Activity {
/** Called when the activity is first created. */
Button b;
@Override
public void onCreate (Bundle savedInstanceState) {
super. onCreate (savedInstanceState);
setContentView (R. layout. main);
b = (Button) findViewById (R. id. button1);
b. setOnClickListener (new OnClickListener () {
@Override
public void onClick (View v) {
new Thread () {
public void run () {
b. setText («Hacked from other thread..»);
} //CalledFromWrongThreadException
}.start ();
}
});
}
}
Программа даст сбой, потому что рабочий поток обновляет компонент пользовательского интерфейса напрямую.
Программа даст сбой, потому что мы создаем еще один поток в кнопке. Все активности должны использовать только основной поток.
Программа выполняет и устанавливает текст кнопки 1, как «взломанный из другого потока».
Программа даст ошибку времени компиляции.
Вопрос 32
Как повернуть изображение в ImageView?
Matrix m=new Matrix ();
imageView. setScaleType (ScaleType. MATRIX);
m. postRotate ((float) angle, pivX, pivY);
imageView. setImageMatrix (m);
final RotateAnimation rotateAnim = new RotateAnimation (0.0f, degree,
RotateAnimation. RELATIVE_TO_SELF, 0.5f,
RotateAnimation. RELATIVE_TO_SELF, 0.5f);
rotateAnim. setDuration (0);
rotateAnim. setFillAfter (true);
imgview. startAnimation (rotateAnim);
Все перечисленное.
Вопрос 33
Как получить фотографию с камеры в Android?
//make a folder " pics" to store pics taken by the camera using this
final String directory = Environment. getExternalStoragePublicDirectory (Environment. DIRECTORY_PICTURES) + "/pics/";
File nd = new File (directory);
nd. mkdirs ();
//what is the picture name?
String file = directory+" myfile"+".jpg";
File myFile = new File (file);
try {
myFile. createNewFile ();
} catch (IOException e) {}
Uri myUri = Uri. fromFile (myFile);
//prepare intent for starting camera
Intent in = new Intent (MediaStore. ACTION_IMAGE_CAPTURE);
in. putExtra (MediaStore. EXTRA_OUTPUT, myUri);
startActivityForResult (in, 1);
//////////////////////////////////////////////////////////////////////
//make a folder " pics" to store pics taken by the camera using this
final String directory = Environment. getExternalStoragePublicDirectory (Environment. DIRECTORY_PICTURES) + "/pics/";
File nd = new File (directory);
nd. mkdirs ();
//what is the picture name?
String file = directory+" myfile"+".jpg";
File myFile = new File (file);
try {
myFile. createNewFile ();
} catch (IOException e) {}
Uri myUri = Uri. fromFile (myFile);
//prepare intent for starting camera
Intent in = new Intent (MediaStore. ACTION_CAMERA);
in. putExtra (MediaStore. EXTRA_OUTPUT, myUri);
startActivityForResult (in, 1);
/////////////////////////////////////////////////////////////////////
Все перечисленное.
Вопрос 34
Как получить текущую дату в Android?
Calendar cal = Calendar. getInstance ();
SimpleDateFormat sdate = new SimpleDateFormat («dd-MMM-yyyy»);
String date = sdate. format (cal. getTime ());
Calendar cal = Calendar. getInstance ();
int sec = c. get (Calendar. SECOND);
SimpleDateFormat dateFmt = new SimpleDateFormat («yyyyMMdd_HHmmss»);
String date = dateFmt. format (new Date ());
Все перечисленное.
Вопрос 35
Как обмениваться данными между двумя приложениями?
Использовать файл
Использовать SQLite базу данных
Использовать контент-провайдер
Использовать content resolver
Вопрос 36
В чем разница между ContentValues и Cursor в SQLite?
ContentValues это пара имя-значение, используется для получения значений из таблиц базы данных. Объект ContentValues возвращается из функции query () объекта SQLiteDataBase. Cursor временный буфер, который передается в функции insert () и update () объекта SQLiteDataBase, чтобы обновить строки таблицы.
ContentValues это временный буфер, используется для вставки или обновления значений в таблицах баз данных. ContentValues объект передается в функции insert () и update () объекта SQLiteDataBase. Cursor объект это пара имя-значение, которое хранит результаты из SQLiteDataBase запроса.
ContentValues это временный буфер, используемый для получения значений из таблиц баз данных. ContentValues объект возвращается из функции query () объекта SQLiteDataBase. Cursor это пара имя-значение, которое передается в функции insert () и update () объекта SQLiteDataBase, чтобы обновить строки таблицы.
ContentValues это пара имя-значение, используется для вставки или обновления значений в таблицах баз данных. ContentValues объект передается в функции insert () и update () объекта SQLiteDataBase. Cursor это временный буфер, который хранит результаты из SQLiteDataBase запроса.
Вопрос 37
Чтобы обновить базу данных SQLite Аndroid приложения, могу ли я передать меньшее значение версии, чем предыдущая версия базы данных?
Helper класс считает, что мы всегда будем передавать номера версий в порядке возрастания для обновления.
Да, мы можем передать.
Мы не должны передавать какое-либо значение, система автоматически сгенерирует больший номер версии для следующей версии.
Вопрос 38
Можно ли вызывать getWritableDataBase () в основном потоке пользовательского интерфейса?
Да, это можно.
getWritableDataBase () не должен вызваться в любом потоке.
Это зависит от требований программирования. Если программист хочет, то да, тот метод можно вызывать в основном или фоновом потоке.
Нет, потому что, если этот метод занимает слишком много времени, чтобы создать все таблицы, то это может прервать основной поток.
Вопрос 39
Вызов метода helper. getWritableDatabase () всегда вызывает метод оnCreate () класса Helper?
Это будет вызвать метод Helper класса оnCreate (), только если база данных создается впервые.
Это будет вызвать метод Helper класса оnCreate () каждый раз.
Это будет вызвать метод Helper класса оnCreate () каждый раз, когда пользователь запускает это приложение.
Вопрос 40
Я хочу получить доступ к данным другого приложения в моем приложении. Мне нужно реализовать контент-провайдер в моем приложении или другое приложение должно его реализовать?
Вы должны использовать binder service.
Использовать binder service с контент-провайдером в вашем приложении.
Другое приложение для обмена данными должно реализовать контент-провайдер.
Ваше приложение должно реализовать контент-провайдер.
Вопрос 41
Какой жизненный цикл у контент-провайдера?
Все контент-провайдеры создаются (оnCreate ()) после загрузки телефона первый раз.
Функция контент-провайдера оnCreate () вызывается, когда первый раз клиент вызывает какие-либо функции провайдера с помощью content resolver.
Функция контент-провайдера оnCreate () вызывается каждый раз, когда клиент вызывает какие-либо функции провайдера с помощью content resolver.
Вопрос 42
В чем предназначение SQLiteOpenHelper?
Вспомогательный класс для управления созданием базы данных, для модернизации и управления версиями без потери состояния предыдущих данных.
Вспомогательный класс для управления созданием базы данных, управления версиями, а также вставкой/изменением/удалением/обновлением данных таблицы без потери состояния предыдущих данных.
Вспомогательный класс для вставки/обновления/удаления данных в таблицах с потерей состояния предыдущих данных.
Все перечисленное.
Вопрос 43
Как обновить базу данных SQLite Android приложения, прежде чем загрузить новую версию в Play Store?
Передайте новый номер версии для базы данных в функцию SQLiteOpenHelper (). Затем обновите базу данных в методе оnUpdate класса SQLiteOpenHelper.
Передайте новый номер версии для базы данных в функцию getWriteableDataBase (). Затем обновите базу данных в методе оnUpdate класса SQLiteOpenHelper.
Передайте новый номер версии для базы данных в функцию SQLiteOpenHelper (). Затем обновите базу данных в методе оnCreate () класса SQLiteOpenHelper.
Опубликуйте новое приложение с последней базой данных, не изменяйте старое приложение, это повредит существующее приложение.
Вопрос 44
Может одно приложение получить доступ к базе данных другого приложения непосредственно?
Да, это возможно.
Нет, это невозможно.
Нет, это невозможно, потому что sqliteDB всегда хранится во внутренней памяти приложение. Так что другие приложения не могут получить доступ к базе данных.
Даже если таблицы базы данных хранятся во внутренней памяти, с помощью Content Provider можно получить доступ к базе данных.
Вопрос 45
Как запустить content provider, используя намерение?
Это возможно. Контент-провайдер это также Android компонент, так что мы можем использовать намерение, чтобы запустить его.
Это невозможно. Используя намерение вы не можете вызвать content provider.
Это возможно не прямым способом, потому что мы можем использовать content resolver для связи с контент-провайдером.
Вопрос 46
Как использовать контент-провайдер? Будет ли он поддерживать shared preferences?
Он используется для хранения SQLiteData, сейчас shared preferences не поддерживаются ContentProvider.
Он используется для обмена данными приложения с внешним миром. Сейчас нет поддержки для shared preferences.
Он используется для связи с content resolver.
Он используется для содержания данных. Каждое приложение содержит одного ContentProvider по умолчанию.