使用CloudRail使用Facebook和Twitter回调postUpdate

时间:2016-09-12 09:43:25

标签: android android-facebook cloudrail

我每个人都使用CloudRail Android SDK使用此代码从我的Android应用程序在Facebook和Twitter上发布:

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

我可以发布我的文字,但是当应用程序返回显示时我想显示一个Dialog。 - 是否有回调或类似的东西来" catch"应用程序显示的回报? - 有没有办法拦截postUpdate功能的成功或成功?

2 个答案:

答案 0 :(得分:1)

CloudRail Android SDK同步工作,因此没有回调。这也是为什么应该正确使用某种形式的线程的原因。在该方法调用后成功发布后,您可以简单地放置要执行的代码。可以使用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();

答案 1 :(得分: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();
    }
}

我还使用了Handler,因为我想将toast显示为对用户的回调。