Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Невозможно создать два петлителя в одном и том же действии при выполнении двух функций facebook - Android

Автор вопроса: AtanuCSEОтветов: 1

Сначала я хочу войти через Facebook. Для этого я использовал Android Facebook SDK. Код для этого

            facebook.authorize(ac, PERMISSIONS, new LoginDialogListener());

Это не сработало. Поэтому мне нужно поставить Looper.prepare() и Looper.loop().

            Looper.prepare();
            facebook.authorize(ac, PERMISSIONS, new LoginDialogListener());
            Looper.loop();

После входа в систему, нажав еще одну кнопку, я хочу опубликовать сообщение на стене друга. Так что я использовал

        Looper.prepare();
    AsyncFacebookRunner as=new AsyncFacebookRunner(facebook);
    as.request(userId+"/feed", paramss, "POST",  new WallPostRequestListener(), null);
   Looper.loop();

Это показывает ошибку, говоря, что

Для каждого потока может быть создан только один петлитель.

Если я использую код без строк петлителя, например

    AsyncFacebookRunner as=new AsyncFacebookRunner(facebook);
    as.request(userId+"/feed", paramss, "POST",  new WallPostRequestListener(), null);

Затем он показывает ошибку, говоря

Невозможно создать обработчик внутри потока, который не вызвал Looper.prepare()

Я искал в сети решение, не могу найти. Мне нужно использовать обе функции в одном и том же действии. Поэтому, пожалуйста, помогите, если кто-нибудь знает, что не так с моим кодом ........ И считайте меня новичком в Android с очень небольшим знанием темы ........

  • Можете ли вы опубликовать весь свой код? В большинстве случаев вам никогда не придется вызывать Looper.prepare() и Looper.loop(). Jesse Chen 28.08.2012
  • Общий код 445 строк..!! stackoverflow .com/questions/9338470/ По этой ссылке вы можете получить основную часть. Вот почему мне нужно было использовать looper.loop(); AtanuCSE 28.08.2012
  • Есть ли причина, по которой вы должны выполнять аутентификацию внутри AsyncTask? facebook.authorize() уже асинхронный, поэтому у вас возникла эта проблема. Jesse Chen 28.08.2012
  • хорошо, поправил код без AsyncTask, заработало. Также попробовал нить во время публикации, это тоже сработало. Спасибо AtanuCSE 29.08.2012

androidfacebookfacebook-android-sdk

Ответы

Ответ 1 · AtanuCSE

new Thread(new Runnable() {

        public void run() {


                AsyncFacebookRunner as=new AsyncFacebookRunner(facebook);
                as.request(userId+"/feed", paramss, "POST",  new WallPostRequestListener(), null);

        }

Это решение моей проблемы. Или другой способ, упомянутый в комментариях Джесси Чена.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы