我在我的 android 应用程序中处理 facebook sdk。我在这里做什么,当用户按下应用程序的图标时,用户将首先在我的应用程序中看到通过 Facebook 登录的按钮。当用户点击此登录按钮时,用户将被引导到 facebook 登录屏幕,用户必须输入用户名和密码。成功登录后,用户将被引导至第二个活动。现在,我想要的是,在用户按下主页按钮或后退按钮时使用应用程序,并再次按下应用程序的图标,然后用户不应该被引导到具有登录按钮的第一个活动,而是用户应该被引导到第二个活动应用程序,因为会话已打开。这种情况应该一直持续到用户注销。我怎样才能做到这一点?
问问题
438 次
4 回答
1
通过将 splashActivity 添加到您的应用程序,您可以获得解决方案.....splashActivity 必须是启动器活动,并且在 splashActivity 的 OnCreate 方法中,您可以检查如果 Facebook 会话有效则重定向到第二个活动,否则调用第一个活动......
于 2013-08-31T07:11:18.607 回答
1
我认为你应该对你想要的东西使用偏好。使用一个标志作为'Y'或'N'。当用户在您的应用程序中成功登录时,将标志设置为“Y”并且在注销之前不要更改它。当用户单击注销按钮时,将标志值设为“N”
- 最后,您必须在开始活动时检查您的偏好值。
编辑:根据您的要求
Context activityContext;
SessionManager objSessionManager;
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.login_page);
activityContext = MainActivity.this;
objSessionManager = new SessionManager(activityContext); // My preference
if(objSessionManager.isLoggedIn()) // checking for flag
{
Intent i = new Intent(activityContext ,Your_Second_Activity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
finish();
}
else
{
// put your code here of First Activity that is Facebook login.
}
}
}
希望它会帮助你。
于 2013-08-31T07:20:13.857 回答
0
我对 Facebook SDK 不太熟悉,但这是解决此类问题的常用方法:
- 当用户登录时,保存他的会话 ID 或 Facebook 给你回电话的任何内容。
- 将其保存到文件中
- 当您的应用重新启动时,查看该文件并尝试使用该会话 ID 发出一个简单的 Facebook API 调用。如果成功,请开始
Intent
您的第二项活动。 - 如果没有,请继续进行第一项活动。
注意:注意加密文件。
于 2013-08-31T07:09:36.107 回答
0
最后,找到了解决方案......工作......
@Override
protected void onResume() {
super.onResume();
Session session = Session.getActiveSession();
if (session != null && session.isOpened())
{
Intent in = new Intent(getBaseContext(), NextActivity.class);
startActivity(in);
}
else
{
}
}
于 2013-08-31T10:25:55.177 回答