在做新浪微博客户端。
我的设计是:
点击按钮后,发送微博:
发送微博:
嗯,微博发送成功。
然后希望可以知道自己是否有发送成功,我加了一个Toast,所以变成了这样:
Total并没有显示。软件也报错了。
但是微博还是发送成功的。
1
2
3
4
5
6
7
8
9
|
01-11 21:44:05.100: W/dalvikvm(4232): threadid=11: thread exiting with uncaught exception (group=0x410ae9d8)
01-11 21:44:05.100: E/AndroidRuntime(4232): FATAL EXCEPTION: Thread-4114
01-11 21:44:05.100: E/AndroidRuntime(4232): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
01-11 21:44:05.100: E/AndroidRuntime(4232): at android.os.Handler.<init>(Handler.java:121)
01-11 21:44:05.100: E/AndroidRuntime(4232): at android.widget.Toast$TN.<init>(Toast.java:327)
01-11 21:44:05.100: E/AndroidRuntime(4232): at android.widget.Toast.<init>(Toast.java:93)
01-11 21:44:05.100: E/AndroidRuntime(4232): at android.widget.Toast.makeText(Toast.java:235)
01-11 21:44:05.100: E/AndroidRuntime(4232): at com.weibo.sdk.android.demo.Sent_Activity$1$1.onComplete(Sent_Activity.java:40)
01-11 21:44:05.100: E/AndroidRuntime(4232): at com.weibo.sdk.android.net.AsyncWeiboRunner$1.run(AsyncWeiboRunner.java:26)
|
朋友,我找到方法了!织码:
@Override
publicvoidonComplete(Stringresponse){
runOnUiThread(newRunnable(){
@Override
publicvoidrun(){
Toast.makeText(SinaMessageActivity.this,"微薄分享成功",
Toast.LENGTH_LONG).show();
}
});
}
RequestListener是回调对象...
执行完成会调用onComplete方法.
你报错是因为在后台线程修改了UI。
你可以创建一个AsyncTask,然后里面用toas提示就是的。
@OverridepublicvoidonComplete(finalStringresult){newX().execute("成功!");} //String为传进来的参数//关于AsyncTask不懂的去搜一搜基础不扎实啊 classXextendsAsyncTask<String,Void,Void>{@OverrideprotectedVoiddoInBackground(String...params){Toast.makeText(context,params[0],Toast.LENGTH_LONG).show();returnnull;}}我试了Task,还是不行~神奇的是
classUpdateListenerimplementsRequestListener{
@Override
publicvoidonComplete(Stringarg0){
//Toast.makeText(ShareActivity.this,getResources().getString(R.string.weibo_send_success),Toast.LENGTH_SHORT).show();
System.out.println("Weibo:"+arg0);
newWeiboTask().execute("");
aq.id(R.id.ng_community_layout_status_sina).checked(true);
}
这个是没问题的我觉得是sdk本身的问题~
AsyncTask必须在UI线程里创建
新浪微博的那个complete回调方法执行的时候还是在Thread里
使用Handler吧,在onComplete的时候发送一个Handler到你自己的Activity
如果Linstener不是在本地activity创建内部类的话如何将Handler发送给外部的activity?版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。