2013年3月23日更新
这个问题已经过时,因为下面提到的事情目前已被弃用80%。
对于我的应用程序,有一个标签主机,包含5个标签的5个不同活动。其中一个实际上是一个活动组,其中包含4个儿童活动,用户可以来回走动进行这些儿童活动。
现在其中一个子活动用于发布推文。 OAUTH的事情很好。但是我发现回调实际上不能指向活动,而是父活动组甚至是tab活动。我不确定它指向哪里但结果是当用户授权我的推特应用程序并返回到Android应用程序时,活动将全部启动并调用onCreate而不是onResume或onNewIntent。这会导致无限循环,要求用户一次又一次地进行身份验证。我试图添加android:launch:singleInstance,但这没有帮助。
如果我不是作为一个孩子而是一个新活动开始活动,一切都很好。我可以回到onNewIntent并成功发布推文。所以我很确定原因是活动组或标签活动。
我实际上并不十分熟悉如何在标签/活动组下使用意图过滤器,任何人都可以为我解释这个案例吗?
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 :(得分: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交互,但可能会影响意图的路由。