Android アプリへの Twitter の統合に取り組んでいます。私はtwitter4j
libを使用しています。私のアプリケーションには、android:launchMode="singleTask"
. 私のアクティビティには、ユーザーに代わって Twitter 投稿を実行することになっている「共有」ボタンがあります。
現時点で、私のアプリケーションの動作は次のとおりです。
- ユーザーが「共有」ボタンを押すと、Twitter の承認プロセスが開始されます。
oauth リクエスト トークンを取得したら、ブラウザを起動します。
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(requestToken.getAuthenticationURL())));
ユーザーがブラウザの「承認」ボタンを押すと、(コールバック URL のおかげで) 制御が私のアクティビティ呼び出しに戻ります
onNewIntent(Intent)
。
すべてがクールです。しかし、ステップ 3 の後にアクティビティで「戻る」ボタンを押すと、Android のメイン画面 (起動画面) に戻ると予想されます。これの代わりに、ブラウザー (ステップ 2 で起動したブラウザー) に陥ります。
私の質問は:それは正常ですか?そうでない場合、どうすれば修正できますか?
を起動adb.exe
すると、次のようなアクティビティ スタックが見つかりました。
ステップ 2 の後 (ブラウザが画面上にある場合):
Running activities (most recent first):
TaskRecord{426729a8 #94 A android.task.browser}
Run #2: ActivityRecord{414204d8 com.android.browser/.BrowserActivity}
TaskRecord{4252bdb0 #107 A com.mycompany.myapp}
Run #1: ActivityRecord{41428ed8 com.mycompany.myapp/.MyActivity}
TaskRecord{41716f90 #2 A com.sec.android.app.launcher}
Run #0: ActivityRecord{41584088 com.sec.android.app.launcher/com.android.launcher2.Launcher}
ステップ 3 の後: (アクティビティが画面に表示されているとき、[戻る] ボタンを押す前):
Running activities (most recent first):
TaskRecord{4252bdb0 #107 A com.mycompany.myapp}
Run #2: ActivityRecord{41428ed8 com.mycompany.myapp/.MyActivity}
TaskRecord{426729a8 #94 A android.task.browser}
Run #1: ActivityRecord{414204d8 com.android.browser/.BrowserActivity}
TaskRecord{41716f90 #2 A com.sec.android.app.launcher}
Run #0: ActivityRecord{41584088 com.sec.android.app.launcher/com.android.launcher2.Launcher}