2015-05-18 3 views
1

У меня проблема с активностью, в которой onStop ломает мой процесс проверки подлинности OAuth.Внедрение OAuth Android делает приостановку активности share share

Сначала небольшое объяснение о контексте моего приложения:

Я имею эту деятельность (позволяет называть его receiveSharedDataActivity), который обрабатывает входящие данные, которые в настоящее время отправки из других приложений. Эта работа выполняется с использованием следующего примера с сайта разработчика Android: http://developer.android.com/training/sharing/receive.html.

Мое приложение требует, чтобы пользователь вошел в систему, используя электронную почту и пароль, или используя вход в систему Facebook или Twitter OAuth. Возможно, пользователь никогда не открывал приложение и, таким образом, еще не вошел в систему. (Возможность мала, но она все еще может произойти.)

Проблема (вызов):

Таким образом, когда пользователь решает разделить некоторые данные моего приложения, но не вошли в ранее, я ему показать 3 варианта входа (E-mail, Facebook и Twitter) в receiveSharedDataActivity с использованием фрагментов. Таким образом, он может сначала аутентифицироваться, и после этого данные могут быть обработаны. Когда пользователь решит войти в систему с помощью Facebook в качестве опции входа в систему Twitter OAuth, он перенаправляется на новое мероприятие из Facebook или Twitter, где ему нужно войти в систему и предоставить моему приложению разрешение на доступ к его пользовательским данным. Все идет хорошо до этого момента. Поскольку, когда пользователь перенаправляется на это новое действие, receiveSharedDataActivity автоматически останавливается с помощью onStop, поскольку он больше не отображается пользователю. Когда пользователь затем входит в систему Facebook или Twitter и отправляется обратно в receiveSharedDataActivity, нет receiveSharedDataActivity, потому что он остановился. Таким образом, пользователь попадает в другое приложение, где пользователь решил обмениваться данными.

Вопрос:

Как я могу предотвратить receiveSharedDataActivity от остановки, когда пользователь войти в систему на деятельность Facebook или Twitter?

Я с нетерпением жду ваших решений, потому что я довольно застрял в этой проблеме.

ответ

0

Хорошие новости! Я смог решить эту проблему. Все это время я думал, что это связано с передачей правильных флагов Intent при запуске receiveSharedDataActivity. Silly me ...

Проблема была в том, что у моего receiveSharedDataActivity был установлен параметр noHistory:true в AndroidManifest.xml. Я нуждался в этом, потому что, очевидно, я не хотел, чтобы эта активность была добавлена ​​в заднюю часть. Но параметр noHistory заставил мою деятельность уничтожить себя непосредственно после того, как активность больше не была видна пользователю. Что произошло, когда началось действие входа в систему OAuth. Поэтому, конечно, не было никакой активности, чтобы вернуться после завершения операции входа в OAuth, потому что receiveSharedDataActivity был просто уничтожен.

Когда я удалил параметр noHistory, действие больше не уничтожило себя и красиво вызвало метод onRestart, где теперь я мог бы обрабатывать остальную часть процесса Oauth. И я смог предотвратить добавление активности в стопку, просто позвонив finish() сразу после запуска нового действия. Таким образом, активность уничтожает себя и не добавляется в заднюю часть.

 Смежные вопросы

  • Нет связанных вопросов^_^