2012-06-10 47 views
0

對於我的應用程序,有5個不同活動的選項卡主機用於5個選項卡。其中一個實際上是一個活動組,其中包含4個兒童活動,用戶可以前後來回這些兒童活動。如何在完成twitter的OAUTH之後返回到兒童活動?

現在,其中一項兒童活動用於發佈推文。 OAUTH的東西很好。不過,我發現回調實際上並不指向活動,而是指向父活動組或甚至標籤活動。我不確定它指向哪裏,但結果是,當用戶授權我的twitter應用程序並返回到android應用程序時,活動將全部啓動並調用onCreate而不是onResume或onNewIntent。這會導致無限循環,要求用戶反覆驗證。我試圖添加android:launch:singleInstance,但這沒有幫助。

如果我不是從小時候開始這項活動,而是一項新的活動,一切都很好。我可以回到onNewIntent併成功發佈推文。所以我很確定原因是活動組或標籤活動。

我其實不太熟悉tab/activity組下的意圖過濾器的工作原理,任何人都可以爲我解釋一下情況嗎?

的Manifest.xml

<activity android:name="TwitterAct" android:launchMode="singleInstance"> 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <data android:scheme="myapp" android:host="twitteract" />  
     </intent-filter> 
</activity> 

TwitterAct

private final String CALLBACKURL = "myapp://twitteract"; 

感謝

回答

1

這個工作對我來說:渲染的OAuth網頁中的WebView你控制,而不是啓動了瀏覽器的應用程序。

oauth網頁在調用其回調函數時,實際上會在webview中取代它自己,WebViewClient可以捕獲該期望的URL,處理結果並完成()webview(將其從活動堆棧中移除)。

換句話說,您的清單條目可以消失。你的回調可以是任何URL,只要你在你創建的WebViewClient中識別它。

相關問題