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);
         }
    }
}
Другие вопросы по тегам