Feb 3, 2010
I think that I've found the problem I am having with AccountManager that I described in an earlier thread that got no responses on the board.
View 2 Replies
I think it is a problem with the way that the Activity Stack is working during the OAUTH workflow. Here's the workflow as I see it. I found this problem by separating out my Activity, which I'll call M, from the oauth Activity, which I'll call O. In the course of authentication, the web browser is invoked and let's call that B.
When a user needs to start over with authentication, my application, through Activity M, starts Activity O. That, in turn, generates some magic URL that is sent to the web browser. So the browser is fired up and information was sent to the OAUTH provider to do a redirect back through the browser back to Activity O.
So, this how the OAUTH workflow looks up to the browser: M -> O -> B
At this point the user logs in and hits the Accept button and the browser then invokes my BROWSABLE activity, which, again, is O. I had thought this would unwind the above stack, but it seems that above situation disappears and what I have after the user hits Accept in the browser is this: B -> O
What I did to work around that is that I put a startActity(M) in O and that seems to work, but it is a workaround.
I believe there is something that I could do with launch modes or activity modes to fix this problem and maintain the original activity stack.
All that is happening, really, is that the O activity pauses for little while, then comes back with the goods, the login credentials. But when I tried to return the information via startActivityForResult (), nothing. Because M is no longer on the Activity Stack.