如何在Android上成功登录Facebook后再去另一个活动?

问题描述:

我已经使用Sessions在我的Android应用程序中整合了Facebook。我有一个登录活动,有一个Facebook登录按钮。我想在成功登录Facebook后成为另一个名为MainActivity的活动,该应用程序在没有任何错误或没有进入MainActivity的情况下关闭。任何人都可以建议我在哪里给代码开始活动。这是我的代码。如何在Android上成功登录Facebook后再去另一个活动?

ImageButton buttonLoginLogout,bb; 
Session.StatusCallback statusCallback = new SessionStatusCallback(); 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.login); 

     buttonLoginLogout = (ImageButton)findViewById(R.id.imageButton1); 
     buttonLoginLogout.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
       onClickLogin(); 

      } 
     }); 


     Settings.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS); 

     Session session = Session.getActiveSession(); 

     if (session == null) { 
      if (savedInstanceState != null) { 
       session = Session.restoreSession(this, null, statusCallback, savedInstanceState); 
      } 
      if (session == null) { 
       session = new Session(this); 
      } 
      Session.setActiveSession(session); 
      if (session.getState().equals(SessionState.CREATED_TOKEN_LOADED)) { 
       session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback)); 
      } 
     } 

     updateView(); 
    } 

    @Override 
    public void onStart() { 
     super.onStart(); 
     Session.getActiveSession().addCallback(statusCallback); 
    } 

    @Override 
    public void onStop() { 
     super.onStop(); 
     Session.getActiveSession().removeCallback(statusCallback); 
    } 

    @Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data); 
    } 

    @Override 
    protected void onSaveInstanceState(Bundle outState) { 
     super.onSaveInstanceState(outState); 
     Session session = Session.getActiveSession(); 
     Session.saveSession(session, outState); 
    } 

    private void updateView() { 
     Session session = Session.getActiveSession(); 


      } 
     }); 


      Intent ik=new Intent(Login.this,MainActivity.class); 
      startActivity(ik); 

     } } 


    private void onClickLogin() { 
     Session session = Session.getActiveSession(); 
     if (!session.isOpened() && !session.isClosed()) { 
      session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback)); 
     } else { 
      Session.openActiveSession(this, true, statusCallback); 
     } 
    } 



    private class SessionStatusCallback implements Session.StatusCallback { 
     @Override 
     public void call(Session session, SessionState state, Exception exception) { 

      updateView(); 


     } 
    } 

    } 
+0

in onPostExecute你可以开始你的主要活动... –

+0

你知道代码流吗?只是调试它,你会知道在哪里把你的代码启动另一个活动。 – Farhan

这样做。

protected void onPostExecute(Bitmap bm){ 
         //Drawable drawable = new BitmapDrawable(getResources(), bm); 
         Bitmap b1=bm; 
         ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
         b1.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
         byte[] b = baos.toByteArray(); 
         // Log.w("bit",""+drawable); 
         String encodedImage = Base64.encodeToString(b,Base64.DEFAULT); 

         Editor edit=pref.edit(); 
         edit.putString("image_data",encodedImage); 
         edit.commit(); 

          Intent ik=new Intent(Login.this,MainActivity.class); 
          startActivity(ik); 

        } 
       }; 
       t.execute(); 

只动

Intent ik=new Intent(Login.this,MainActivity.class); 
           startActivity(ik); 

这段代码postexecute方法中。

+0

不,它不帮助 – user3256145

+0

可以用什么建议吗? – user3256145

+0

好吧,只需使用此代码'Intent ik = new Intent(Login.this,MainActivity.class); startActivity(ik);'updateView()'方法内部。 – InnocentKiller