3

更新23/9/2013如何在完成twitter的OAUTH之後返回到兒童活動?

此問題已過時,因爲下面提到的事情現在已經過時80%。


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

現在,其中一項兒童活動用於發佈推文。 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"; 

感謝

回答

0

我問過類似的問題,前一段時間,並得到了一些人的答案:

Is there a production quality OAuth sample for Android?

我有我的路由的意圖重新使用singleTask原來的活動而不是singleInstance,但似乎人們都有成功的兩種方式。看起來像大多數人在創建Intent以啓動瀏覽器時添加標誌(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_FROM_BACKGROUND)。不完全確定這些將如何與singleInstance交互,但可能會影響意圖可以路由的位置。

+1

我曾嘗試過它,它在我使用單一意圖時起作用。但是,同樣的方法不適用於活動組的子項目。不管怎樣,謝謝。 – reTs

相關問題