андроид несколько действий, начинающихся без причины

1

Когда я запускаю строку кода для запуска действия, я получаю следующую распечатку в logcat и несколько из того же самого действия, начинающегося? может ли кто-нибудь помочь?

Изображение 174551

Мой код для этого...

public void login()
{
    System.out.println("1");
    SessionEvents.AuthListener listener = new SessionEvents.AuthListener()  {

        @Override
        public void onAuthSucceed() {
            facebookConnector.idnum();

            checkdatabase();

            if(id == ""){

            Intent i = new Intent(facebook.this, signup.class);
            startActivity(i);
            finish();
            }
            else{
                System.out.println("TEST");
                Intent i = new Intent(facebook.this, mainMenu.class);
                startActivity(i);
                finish();   

            }

        }

        @Override
        public void onAuthFail(String error) {
            System.out.println("2");

        }
    };
    System.out.println("3");
    SessionEvents.addAuthListener(listener);
    System.out.println("4");
    facebookConnector.login();
}

а затем метод checkdatabase...

public void checkdatabase(){


    fbid = FacebookConnector.id;
    System.out.println("facebook id in check database = " + fbid);
    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();


    nameValuePairs.add(new BasicNameValuePair("fbid",fbid));
    try{
        HttpClient httpclient = new DefaultHttpClient();


        HttpPost httppost = new HttpPost("checkdatabase.php");
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity entity = response.getEntity(); 
        is = entity.getContent();
        System.out.println("---------");
        System.out.println(is);
    }catch(Exception e) 
    { 
    Log.e("log_tag", "Error in http connection "+e.toString()); 
    } 

    //convert response to string 
    try 
    { 
        System.out.println("WSSSSSSSSSSSSSS");
    BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8); 
    System.out.println(reader + "TEST");
    StringBuilder sb = new StringBuilder(); 
    System.out.println("Wmmmmmmmmmmmmmmm");
    String line = null; 
    while ((line = reader.readLine()) != null)  
    { 
    sb.append(line + "\n"); 
    } 
    is.close(); 
    result=sb.toString(); 
    System.out.print("SAD");
    System.out.println(result + "READER");

    JSONArray jArray = new JSONArray(result); 
    JSONObject json_data = jArray.getJSONObject(1);


    id = json_data.getString("facebookid");
    System.out.println("facebooooooook id: " + fbid);
    System.out.println("database id: " + id);
    } 
    catch(Exception e) 
    {   
    Log.e("log_tag", "Error converting result "+e.toString()); 
    } 
    //parse json data 

}

Класс FacebookConnector

открытый класс FacebookConnector {

private Facebook facebook = null;
private Context context;
private String[] permissions;
private Handler mHandler;
private Activity activity;
static String id;
private SessionListener mSessionListener = new SessionListener();;

public FacebookConnector(String appId,Activity activity,Context context,String[] permissions) {
    this.facebook = new Facebook(appId);
    id ="";

    SessionStore.restore(facebook, context);
    SessionEvents.addAuthListener(mSessionListener);
    SessionEvents.addLogoutListener(mSessionListener);

    this.context=context;
    this.permissions=permissions;
    this.mHandler = new Handler();
    this.activity=activity;
}

public void login() {
    System.out.println("5");
  //  if (!facebook.isSessionValid()) {
        facebook.authorize(this.activity, this.permissions,new LoginDialogListener());
   // }
}

public void logout() {
    System.out.println("33");
    SessionEvents.onLogoutBegin();
    AsyncFacebookRunner asyncRunner = new AsyncFacebookRunner(this.facebook);
    asyncRunner.logout(this.context, new LogoutRequestListener());
}
public void idnum(){
    try {
        JSONObject jObject = null;
        try {
            jObject = new JSONObject(facebook.request("me"));
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }    
        id =jObject.getString("id");

        System.out.println("facebook id: " + id);
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

public void postMessageOnWall(String msg) {
    if (facebook.isSessionValid()) {
        Bundle parameters = new Bundle();
        parameters.putString("message", msg);
        try {
            String response = facebook.request("me/feed", parameters,"POST");
            System.out.println(response);
        } catch (IOException e) {
            e.printStackTrace();
        }
    } else {
        login();
    }
}   

private final class LoginDialogListener implements DialogListener {
    public void onComplete(Bundle values) {
        SessionEvents.onLoginSuccess();
    }

    public void onFacebookError(FacebookError error) {
        SessionEvents.onLoginError(error.getMessage());
    }

    public void onError(DialogError error) {
        SessionEvents.onLoginError(error.getMessage());
    }

    public void onCancel() {
        SessionEvents.onLoginError("Action Canceled");
    }
}

public class LogoutRequestListener extends BaseRequestListener {
    public void onComplete(String response, final Object state) {
        // callback should be run in the original thread, 
        // not the background thread
        mHandler.post(new Runnable() {
            public void run() {
                SessionEvents.onLogoutFinish();
            }
        });
    }
}

private class SessionListener implements AuthListener, LogoutListener {

    public void onAuthSucceed() {
        SessionStore.save(facebook, context);
    }

    public void onAuthFail(String error) {
    }

    public void onLogoutBegin() {           
    }

    public void onLogoutFinish() {
        SessionStore.clear(context);
    }
}

public Facebook getFacebook() {
    System.out.println("55");
    return this.facebook;
}

}

  • 0
    Во-первых, на скриншоте нет ошибок. Во-вторых, без какого-либо кода вам невозможно помочь - мы не читатели ума. Ну, хорошо, по крайней мере, я нет.
  • 0
    К вашему сведению, вы можете сохранить данные из журнала. Укажите и нажмите на начальную линию, удерживайте Shift, затем нажмите на конечную линию. Нажмите на маленькую стрелку (указывающую вниз) в правом верхнем углу и выберите «Экспортировать выделенный текст». Я использую это, даже когда я просто хочу вырезать и вставить записи журнала в такие места, как здесь. Это не сложнее, чем снимать и импортировать снимки экрана ... и намного легче читать.
Теги:

2 ответа

0
Лучший ответ

Ваш код неясно, но если верхний код является вашим классом "facebookConnector", то каждый раз, когда вы вызываете логин, вы снова добавляете слушателя, прежде чем рекурсивно вызывать логин снова.

0

Добавьте журналы для аутентификации и убедитесь, что они вызываются только один раз. Я бы начал там...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню