私のアプリケーションでは、5つのタブに対して5つの異なるアクティビティを持つ1つのタブホストがあります。そのうちの1つは、実際には4つの子アクティビティを含むアクティビティグループであり、ユーザーはこれらの子アクティビティを行ったり来たりすることができます。
現在、子アクティビティの1つがツイートの投稿に使用されています。OAUTHのことは問題ありません。ただし、コールバックは実際にはアクティビティを指すことはできませんが、親アクティビティグループまたはタブアクティビティを指すことさえできます。それがどこを指しているのかはわかりませんが、ユーザーが私のTwitterアプリを承認し、Androidアプリに戻ると、アクティビティが最初から開始され、onResumeやonNewIntentではなくonCreateが呼び出されます。これにより、無限ループが発生し、ユーザーに何度も認証するように求められます。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";
ありがとう