Android 启动第二项活动

Android 启动第二项活动,android,facebook,facebook-login,Android,Facebook,Facebook Login,我正在android应用程序中处理facebook sdk。我在这里做的是,当用户按下应用程序的图标时,用户将首先在我的应用程序中看到通过Facebook登录的按钮。当用户点击此登录按钮时,用户将被引导到facebook登录屏幕,用户必须在其中输入用户名和密码。成功登录后,用户将被引导到第二个活动。现在,我想在这里是,在使用应用程序后,当用户按下home按钮或back按钮,然后再次按下应用程序的图标,那么用户不应该被引导到有登录按钮的第一个活动,而是应该被引导到应用程序的第二个活动,因为会话被打

我正在android应用程序中处理facebook sdk。我在这里做的是,当用户按下应用程序的图标时,用户将首先在我的应用程序中看到通过Facebook登录的按钮。当用户点击此登录按钮时,用户将被引导到facebook登录屏幕,用户必须在其中输入用户名和密码。成功登录后,用户将被引导到第二个活动。现在,我想在这里是,在使用应用程序后,当用户按下home按钮或back按钮,然后再次按下应用程序的图标,那么用户不应该被引导到有登录按钮的第一个活动,而是应该被引导到应用程序的第二个活动,因为会话被打开。这种情况应该一直持续到用户注销。我该怎么做呢?

我对Facebook SDK不太熟悉,但这是解决此类问题的常用方法:

  • 当用户登录时,保存他的会话id或Facebook给你回电话的任何内容
  • 将其保存到文件中
  • 重新启动应用程序时,查看该文件,并尝试使用该会话id发出一个简单的Facebook API调用。如果成功,则启动第二个活动的新
    Intent
  • 如果没有,则继续执行第一个活动

  • 注意:注意加密文件。

    将splashActivity添加到应用程序中,您可以获得解决方案…..splashActivity必须是启动器活动,在splashActivity的OnCreate方法中,您可以检查Facebook会话是否有效,然后重定向到第二个活动,否则调用第一个活动

    我认为你应该对你想要的东西使用偏好。使用一个标志作为'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.
                        }
            }
      }
    

    希望它能帮助你

    最后,找到了解决方案……有效

     @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 
                {
    
                }
            }
    

    你怎么能检查它?意味着我必须在重新启动方法上编写此代码?您应该检查您的第一个活动。根据您的标志传递意图。但我不希望每次都是第一个活动。如果会话打开且用户按下应用程序图标,则应指向第二个活动只需将这些条件放在setcontentview()下方oncreate方法中的mainactivity上即可;。我已经用它做了,它对我有用。你能提供一些相关的例子吗?