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