【发布时间】:2012-10-20 08:46:20
【问题描述】:
第一次发布问题,我很抱歉,关于这个问题有很多问题,但在尝试了许多不同的选项后,我似乎无法让它发挥作用。
我有一个 twitter 应用程序,其主屏幕有一个按钮,通过标准浏览器应用程序请求 oauth twitter 访问,然后返回到主屏幕。如果我点击后退按钮,浏览器应用程序将打开 twitter 网站。我在清单文件中尝试了 noHistory,并且在许多情况下都没有运气,在启动意图 FLAG_ACTIVITY_NO_HISTORY 以及 FLAG_ACTIVITY_CLEAR_TOP 和 Intent.FLAG_ACTIVITY_SINGLE_TOP 时。
这是我最新的代码:
清单文件
<activity android:name=".oauth"
android:label="@string/oauth_name"
android:noHistory="true"
>
<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="tm" android:host="twitt" />
</intent-filter>
</activity>
<activity android:name="com.tweetymanagerpro.Home"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar"
android:windowSoftInputMode="stateHidden|adjustPan">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
</intent-filter>
</activity>
在 Home 活动中,我将 oauth 调用如下
Intent settingsActivity = new Intent(getBaseContext(), oauth.class);
settingsActivity.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(settingsActivity);
接下来,在 oauth.onCreate() 中,我调用 twitter url
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl));
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
this.startActivity(intent);
接下来,在 oauth.onResume() 中,我处理令牌等,然后再次启动 Home
Intent i = new Intent(this, Home.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(i);
与 twitter 的连接效果很好,如果我点击后退按钮,它现在只是在主页上,它会将我带回到正在使用 twitter 进行身份验证的浏览器。
【问题讨论】:
标签: android twitter-oauth