2011-11-08 15 views
0

私はlinkedinとtwitterで私のアプリケーションにログインします。これらの2つのクライアントは、webviewを渡して私のアプリケーションに戻ります(私はonNewIntent()を使ってデータを取得します)。問題は、1つのアクティビティで2つのonNewIntent()を持つことはできません。同じアクティビティでどのように両方を行うことができますか?1つのAndroidアクティビティに2つのonNewIntent()を設定できますか?

ここに私のコード:

@Override 
protected void onNewIntent1(Intent intent2) { 
    super.onNewIntent(intent2); 
    Uri uri = intent2.getData(); 
    try { 
     String verifier = uri.getQueryParameter("oauth_verifier"); 
     AccessToken accessToken = twitter.getOAuthAccessToken(requestToken, 
       verifier); 
     String token = accessToken.getToken(), secret = accessToken 
       .getTokenSecret(); 

     System.out.println("ACCESSSSSSSS"+accessToken+token); 
    } catch (TwitterException ex) { 
     Log.e("Main.onNewIntent", "" + ex.getMessage()); 
    } 

} 


@Override 
protected void onNewIntent(Intent intent) { 

    String verifier = intent.getData().getQueryParameter("oauth_verifier"); 

    LinkedInAccessToken accessToken = oAuthService.getOAuthAccessToken(liToken, verifier); 
    client = factory.createLinkedInApiClient(accessToken); 
    client.postNetworkUpdate("LinkedIn Android app test"); 

    Person p = client.getProfileForCurrentUser(EnumSet.of(ProfileField.FIRST_NAME, ProfileField.LAST_NAME, ProfileField.ID)); 

    System.out.println("Token "+accessToken.getToken());  
    System.out.println("Secret "+accessToken.getTokenSecret()); 
    System.out.println("NOM: "+p.getLastName() + ", PRENOM: " + p.getFirstName()); 

    String user_id = p.getId(); 
    String first_name = p.getFirstName(); 
    String last_name = p.getLastName(); 
    String oauth_token = accessToken.getToken(); 
    String oauth_token_secret = accessToken.getTokenSecret(); 

    //Verification du login/password 
    new LoginLinkedin().execute(user_id,oauth_token,oauth_token_secret,first_name,last_name); 

    } 

答えて

2

あなたがこれを行うことはできません。 onNewIntentは親クラスからオーバーライドする必要があるため、システムは実際に親メソッドをオーバーライドするonNewIntentのみを '参照'します。 onNewIntent1で@Overrideメソッドを使用すると有効でないため、上記のコードではエラーが発生するはずです。

あなたがする必要があることは、現在のデータを観察してから、その意図がどこから来たのかを判断し、次にあなたのツイッターを実行するか、コードでリンクさせることです。この観察は、単一の統一されたonNewIntentメソッド内で行う必要があります。

+0

はい私はこれを行う唯一の方法だと思います。 – user420574

関連する問題