2016-09-12 2 views
1

Я все я использую CloudRail Android SDK размещать на Facebook и Twitter из моего Android App, используя этот код:Callback на postUpdate с Facebook и Twitter, используя CloudRail

final Social facebook = new Facebook(getContext(),"xxxxxx","xxxxxx"); 
new Thread() { 
    @Override 
    public void run() { 
     Log.i("SHARE","Condivido: " + testoCondivisione); 
     facebook.postUpdate(testoCondivisione); 
    } 
}.start(); 

И я могу разместить свой текст, но я хочу отобразите диалоговое окно, когда приложение вернется на дисплей. - Есть ли обратный вызов или что-то в этом роде, чтобы «поймать» возврат на дисплее приложения? - Есть ли способ перехватить успех или неуспех функции postUpdate?

ответ

1

CloudRail Android SDK работает синхронно, поэтому нет обратных вызовов. Вот почему некоторые формы Threads должны использоваться, как вы уже правильно сделали. Вы можете просто поместить код, который хотите выполнить, после того, как сообщение было успешным за этим вызовом метода. Ошибки можно поймать с помощью try-catch. Например:

final Social facebook = new Facebook(getContext(),"xxxxxx","xxxxxx"); 
new Thread() { 
    @Override 
    public void run() { 
     Log.i("SHARE","Condivido: " + testoCondivisione); 
     try { 
      facebook.postUpdate(testoCondivisione); 
     } catch (Exeption e) { 
      // Handle potential errors 
     } 
     Log.i("SHARE", "Post successful"); // Will be executed after a successful post 
    } 
}.start(); 
+0

Это работает !! Спасибо @Florian – AlbWebbergate

1

Это мое окончательное решение.

public void shareViaFacebook(String text){ 
    final String textSocial = text; 
    final Handler handler = new Handler(Looper.getMainLooper()); 

    Log.i("SHARE","Facebook"); 
    CloudRail.setAppKey("xxxxx"); 
    final Social facebook = new Facebook(getContext(),"xxxxx","xxxx"); 
    new Thread() { 
     @Override 
     public void run() { 
      Log.i("SHARE","Condivido: " + textSocial); 
      Boolean isEccezione = false; 
      try { 
       facebook.postUpdate(textSocial); 
      } catch (Exception e) { 
       Log.i("ECCEZIONE-FACEBOOK",e.toString()); 
       isEccezione = true; 
      } 

      //Controllo se c'è stata una eccezione 
      if(isEccezione){ 
       handler.postDelayed(new Runnable() { 
        public void run() { 
         displayMessaggioCondivisione(false); 
        } 
       },10); 
      } else { 
       Log.i("SHARE", "Post successful"); // Will be executed after a successful post 
       handler.postDelayed(new Runnable() { 
        public void run() { 
         displayMessaggioCondivisione(true); 
        } 
       },10); 
      } 
     } 
    }.start(); 
} 

private void displayMessaggioCondivisione(Boolean resp){ 
    if(resp){ 
     //Print Toast or open dialog 
     Toast.makeText(getContext(),R.string.condivisione_social_ok,Toast.LENGTH_LONG).show(); 
    } else { 
     Toast.makeText(getContext(),R.string.condivisione_social_ko,Toast.LENGTH_LONG).show(); 
    } 
} 

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

Смежные вопросы