其他分享
首页 > 其他分享> > android-如何在没有新意图的情况下清除活动堆栈

android-如何在没有新意图的情况下清除活动堆栈

作者:互联网

让我详细说明问题.我在应用程序中使用twitter4j.它运行良好,您知道Intent.ACTION_VIEW正在回调Activity中的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);
    }
}

一切正常,直到我按返回按钮.当我按下活动返回包含授权页面的网页.

有什么办法可以清除NewIntent上的Activity堆栈吗?我不想调用与重新启动相同的Intent,也不确定是否有其他不同的出路.

更新:我像这样调用身份验证页面:

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);

你有什么建议吗?

解决方法:

您尚未在浏览器中包含用于打开身份验证页面的代码.调用浏览器视图时要设置哪些标志?我认为这就是您的问题所在.

您是否正在使用类似…

Intent webIntent = new Intent(Intent.ACTION_VIEW,
                Uri.parse(token.getAuthorizationURL()));
webIntent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

标签:twitter4j,android
来源: https://codeday.me/bug/20191127/2077049.html