2011-08-09 49 views
1

我使用以下方法共享我的應用程序數據 但如果用戶單擊主屏幕上,我希望它強制關閉Facebook連接。黑莓強行插入Facebook連接

public class FacebookIntegration { 

    private static User user; 
    private static String NEXT_URL = "http://www.facebook.com/connect/login_success.html"; 
    private static String APPLICATION_ID ; 
    private static String APPLICATION_SECRET ; 
    private static String[] PERMISSIONS = Facebook.Permissions.USER_DATA_PERMISSIONS; 
    public static boolean posted = false; 
    private static String[] postPermissions = Facebook.Permissions.PUBLISHING_PERMISSIONS; 
    private static SharePopup _obj; 
    private static boolean exception = false; 

    public static boolean integrate(SharePopup obj) { 

     _obj = obj; 
     ApplicationSettings as = new ApplicationSettings(NEXT_URL, APPLICATION_ID, APPLICATION_SECRET, PERMISSIONS); 
     ApplicationSettings as2 = new ApplicationSettings(null, APPLICATION_ID, APPLICATION_SECRET, PERMISSIONS); 

     Facebook fb = Facebook.getInstance(as); 

     _obj.close(); 
     try { 
      user = fb.getCurrentUser(); 
     } catch (FacebookException e1) { 

      e1.printStackTrace(); 
      exception = true; 
     } 
     if (!exception) { 
      try { 

       fb.getCurrentUser(new BasicAsyncCallback() { 
        public void onComplete(com.blackberry.facebook.inf.Object[] objects, final java.lang.Object state) { 
         FacebookIntegration.this.user = (User) objects[0]; 
         Vector prayerTimes = (Vector) PrayerTimesDTO.getPrayerTimes(); 
         StringBuffer post = new StringBuffer("avbc"); 

         user.publishStatus(post.toString()); 

         posted = true; 

         user.publishPost("stream.publish", "published through the Facebook API", APPLICATION_SECRET, null, null, null, user.getId()); 

        } 

        public void onException(final Exception e, final java.lang.Object state) { 
         e.printStackTrace(); 

        } 
       }); 

      } catch (FacebookException e) { 
       e.printStackTrace(); 
      } finally { 
       fb.logout(true); 


      } 
     } 
     return true; 

    } 


} 

回答

0

自從你第一次發佈它以來,我一直在思考這個問題。我不認爲任何人都可以幫助你,因爲我們必須知道Facebook對象的功能。這很可能是您必須關閉連接的地方。

0

答:在您的MainScreen類重寫的OnClose函數:

public boolean onClose() { 
    FacebookIntegration.closeConnection(); 
    return super.onClose(); 
} 



B.改變FacebookIntegration如下:在類

  1. 把Facebook的對象作爲靜態字段

    private static Facebook fb;

  2. 更改的行:Facebook fb = Facebook.getInstance(as);
    fb = Facebook.getInstance(as);

  3. 添加closeConnection方法FacebookIntegration如下:

    public static void closeConnection() { fb.logout(true); }

+0

,但我想註銷一旦登錄沒有註銷它每次在屏幕上關閉..我將如何做到這一點? –

+0

當用戶點擊主屏幕時(如在您的場景中),操作系統會觸發onClose()方法 –

+0

@AshrafBashir,您能否給我舉一些您已完成Blackberry + Facebook SDK的示例。請通過[email protected]。也看到我的問題http://stackoverflow.com/questions/12962248/facebook-oauth-implementation-for-blackberry –