我正在使用 Twitter4J 从不是应用程序启动活动的活动中向 Twitter 授权。到目前为止,我有一个名为“AuthorisationActivity”的单独活动,它返回一个带有有效 Twitter4j twitter 对象的意图,然后可以由调用活动“CallAuthorisationActivity”使用。
来自 twitter 的回调工作正常,我最终在 AuthorisationActivity 中得到了一个授权的 twitter 对象,但现在我发现自己处于 catch22 情况:1 - 如果我没有将 AuthorisationActivity 的启动模式设置为“singleTask”,回调将不会返回到 AuthorisationActivity 的 onNewIntent() 方法,但到它的 onCreate() 方法并尝试在无限循环中进行身份验证。2 - 如果我确实将 AuthorisationActivity 的启动模式设置为“singleTask”,它将返回到 onNewIntent() 但由于它现在处于单独的任务中,它不会返回到调用活动的 onActivityResult() 方法。
我只是 Android 开发的初学者,并且由于身份验证有效,我认为这个问题更多地与活动的管理方式有关。以下是清单的简化摘录:
<activity
android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".CallAuthorisationActivity">
</activity>
<activity
android:name=".AuthorisationActivity"
android:label="@string/title_activity_authorisation">
<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="tweetree" android:host="callback" />
</intent-filter>
</activity>
在代码中,CallAuthorisationActivity 只是将带有 startActivityForResult(...) 的意图发送到 AuthorisationActivity 并按照标准在 onActivityResult(...) 中捕获结果。任何帮助将不胜感激,谢谢