我每个人都使用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功能的成功或成功?
答案 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显示为对用户的回调。