Android 如何在twitter身份验证后从后台删除浏览器?
在我的android应用程序中,我们使用ScribeAPI登录Twitter。用于使用以下代码在浏览器中调用twitter身份验证urlAndroid 如何在twitter身份验证后从后台删除浏览器?,android,twitter,twitter-oauth,flags,scribe,Android,Twitter,Twitter Oauth,Flags,Scribe,在我的android应用程序中,我们使用ScribeAPI登录Twitter。用于使用以下代码在浏览器中调用twitter身份验证url OAuthService service = new ServiceBuilder() .provider(TwitterApi.SSL.class) .apiKey(myApiKey) .apiSecret(myApiSecret) .callback(twitterCallback) .build(); Token
OAuthService service = new ServiceBuilder()
.provider(TwitterApi.SSL.class)
.apiKey(myApiKey)
.apiSecret(myApiSecret)
.callback(twitterCallback)
.build();
Token token = service.getRequestToken();
String authUrl = service.getAuthorizationUrl(token);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
intent.setData(Uri.parse(authUrl));
context.startActivity(intent);
在twitter身份验证完成后,现在返回活动,我们将转到应用程序中的另一个活动,即MainActivity
@Override
protected void onResume() {
super.onResume();
if(uri != null && uri.toString().startsWith(“oauth://twitter”){
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
}
}
清单代码如下所示
<activity
android:name=".LauncherActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
<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:host="twitter"
android:scheme="oauth" />
</intent-filter>
</activity>
到目前为止工作正常,现在转到设备主屏幕。这里的问题是,当我长按home按钮时,会显示两个应用程序,一个是我的原生应用程序,另一个是浏览器中的myapp。身份验证完成后如何处理删除浏览器
提前感谢终于得到了解决方案,在浏览器intent.flag\u ACTIVITY\u EXCLUDE\u中打开之前,为intent添加一个标志。现在它的工作性能良好。代码是
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS );
intent.setData(Uri.parse(result));
context.startActivity(i);
Intent.FLAG\u ACTIVITY\u EXCLUDE\u FROM\u RECENTS reference hereGet solution刚刚在浏览器中打开之前为Intent添加了一个标志。Intent.FLAG\u活动\u从\u最近的活动中排除\u。现在它的工作性能
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS );
intent.setData(Uri.parse(result));
context.startActivity(i);