Android получает результат от Camera Intent в onNewIntent
У меня есть активность с android:launchMode="singleInstance"
, Я хочу запустить камеру из этого, а затем обработать результат, но startActivityForResult
не работает с singleInstance. Так что, возможно, можно получить результат с помощью камеры onNewIntent
метод? Если это возможно, как я могу это реализовать?
1 ответ
Возможно, вы захотите взглянуть на singleTask и singleInstance.
singleTask:
Система создает новую задачу и создает экземпляр действия в корне новой задачи. Однако, если экземпляр действия уже существует в отдельной задаче, система направляет намерение в существующий экземпляр посредством вызова его метода onNewIntent() вместо создания нового экземпляра. Только один экземпляр действия может существовать одновременно.
Примечание. Несмотря на то, что действие начинается с новой задачи, кнопка "Назад" по-прежнему возвращает пользователя к предыдущему действию.
SingleInstance:
То же, что и "singleTask", за исключением того, что система не запускает никаких других действий для задачи, содержащей экземпляр. Деятельность всегда является единственным и единственным участником своей задачи; любые действия, начатые этим, открываются в отдельной задаче.
Примечание. Это означает, что действие в режиме запуска всегда выполняется в одной задаче экземпляра действия. Это очень специализированный режим и должен использоваться только в приложениях, которые полностью реализованы как одно действие.
Вы можете попробовать что-то вроде этого
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
Uri uri = intent.getData();
if (uri != null && uri.toString().startsWith(CALLBACK_URL)) {
try {
//load image goes
} catch (Exception e) {
Log.e(TAG, e.getMessage(), e);
}
}
}