5

アプリケーションでTwitteroAuthライブラリを使用しています。ユーザーはTwitterアカウントでログインしています。

アクティビティAでは、Twitterログインを利用できます。ユーザーがログインしたときに、履歴なしでアクティビティBを開始したいと思います。これが私のすべてのものです:

まず、、TwitterAPIが要求したManifest.xmlように設定しました。launchMode=singleTask

<activity
    android:name=".A_Activity"
    android:label="@string/app_name"
    android:launchMode="singleTask"
    android:theme="@android:style/Theme.Black.NoTitleBar">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter>
    <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="my_twitter_scheme" />
    </intent-filter>
</activity>

これが私がアクティビティBを開始する方法です:

Intent i = new Intent(A.this, B.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);

注:BroadcastReceiverインスタンスを介してアクティビティBを呼び出しています。

ログインすると、レシーバーはアクティビティBを正しく開始しましたが、残念ながら、戻るボタンを押すと、アプリケーションはアクティビティAに戻りました。

私はそれについてだと思います、launchModeそして私が言ったように、Twitterはそのオプションを必要としています。私は何が間違っているのですか?どんな助けや提案(多分Twitterについて)は素晴らしいでしょう。

4

1 に答える 1

2

この問題を解決するためのより効率的な方法があるはずですが、私は別のことを提案します。

アクティビティを開始した後でメソッドを呼び出すだけfinish()で、アクティビティAが終了し、ユーザーがアクティビティBのアプリケーションで戻るボタンを押すと、希望どおりにホーム画面に戻ります。

また、ダイアログを2回チェックして、例外を回避します。つまり、この質問(および回答も)をチェックして、私が何を意味するのかを理解します。

于 2012-08-23T13:43:03.417 に答える