当前位置: 代码迷 >> Android >> android新浪微博下发后,应该用什么技巧提示用户发送的情况
  详细解决方案

android新浪微博下发后,应该用什么技巧提示用户发送的情况

热度:88   发布时间:2016-05-01 12:04:59.0
android新浪微博发出后,应该用什么技巧提示用户发送的情况?
在做新浪微博客户端。

我的设计是:
点击按钮后,发送微博:

发送微博:


嗯,微博发送成功。



然后希望可以知道自己是否有发送成功,我加了一个Toast,所以变成了这样:


Total并没有显示。软件也报错了。
但是微博还是发送成功的。


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)


代码错误只想Toast那行。请问是怎么回事?
  或者说各位朋友有更好的方法,可以提示用户微博是否发送成功?
  第四个参数RequestListener(){}是朋友帮我加的,不清楚是不是应该用其它呢?
android 新浪微博 java

------解决方案--------------------
微博的update()方法是运行在单独的线程中的,所以无法在其中操作UI元素,提示信息需要通过handler通知UI线程展示
------解决方案--------------------
可以使用同步线程
public class LoginTask extends AsyncTask<String, Integer, Boolean> {

@Override
protected Boolean doInBackground(String... params) {
String username = params[0];
String password = params[1];
boolean result = false;

try {
mUser.setAutoLoad(mRememberCheckBox.isChecked());

result = UserHttpRequest.getUserToken(mContext, username, password);

} catch (Exception e) {
Log.e("login", e.getMessage());
}


return result;
}

@Override
protected void onProgressUpdate(Integer... values) {

if (isCancelled())// Task被取消了,不再继续执行后面的代码
{
return;
}

super.onProgressUpdate(values);
}

@Override
protected void onPreExecute() {
if (isCancelled())// Task被取消了,不再继续执行后面的代码
{
return;
}

showProgressDialog("请稍候", "登陆验证中……");

super.onPreExecute();
}

@Override
protected void onPostExecute(Boolean result) {
if (isCancelled())// Task被取消了,不再继续执行后面的代码
{
return;
}

if (result) {
try {
UserHttpRequest.getClienterInfo();
} catch (JSONException ex) {
}
Frame.getInstance().onSipRegister();
} else {
hideProgressDialog();
Toast.makeText(
GuoSheng_LoginActivity.this.getApplicationContext(),
  相关解决方案