3

詳細を含めて質問をクリアさせてください。私はtwitter4j自分のアプリケーションで使用しています。それはうまく機能しており、Activity のメソッドにIntent.ACTION_VIEWコールバックしていることがわかります。onNewIntent

私はこのようなコールバックを満たしています:

protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    final Uri uri = intent.getData();
    if (uri != null && uri.getScheme().equals(Constants.OAUTH_CALLBACK_SCHEME)) {
        Log.d("TAG", "Twitter callback -> New Intent");
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
        new RetrieveAccessTokenTask(this,consumer, provider, prefs). execute(uri);
    }
}

戻るボタンを押すまではすべて問題ありません。押すと、アクティビティは承認ページを含む Web ページを返します。

アクティビティ スタック onNewIntent をクリアする方法はありますか? 再起動と同じインテントを呼び出したくないので、別の方法がわかりません。

更新:私はこのように認証ページを呼び出しています:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)).setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_FROM_BACKGROUND);

何か提案はありますか?

4

1 に答える 1

3

ブラウザで認証ページを開くためのコードが含まれていません。ブラウザビューを呼び出すときに設定するフラグは何ですか?そこに問題があると思います。

次のようなものを使用していますか...

Intent webIntent = new Intent(Intent.ACTION_VIEW,
                Uri.parse(token.getAuthorizationURL()));
webIntent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
于 2012-08-09T09:11:06.830 に答える