Android网络请求后跟一个不同的AlertDialog

时间:2014-01-12 15:05:55

标签: android user-interface android-asynctask alert runnable

我想要做的是在新线程中从MainActivity启动一个程序:

1)进行互联网通话

2)从响应中提取类似布尔值的东西(代表要显示的AlertDialog)

3)在MainActivity中显示正确的(取决于布尔值)AlertDialog

使用Runnable或AsyncTask执行前两个步骤没有问题,但我无法在MainActivity中显示警报

我遵循了不同的指南,但我无法达成解决方案。

解决

我的主要活动:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mHandler=new Handler();
    new Thread(new UpdateRunnable(this,mHandler)).start();
    /* Other stuff */
}

My Runnable:

public class UpdateRunnable implements Runnable{

private Activity activity;
private Handler mHandler;
private boolean update;
/* Other stuff */


public UpdateRunnable(Activity activity, Handler mHandler){
    this.activity = activity;
    this.mHandler = mHandler;
    /* Other stuff */
}

@Override
public void run() {
    // It get from web which Dialog to call
    update = update();
    // It manage the UI work
    mHandler.post(new Runnable() {
        public void run() {
            if(update){
                show_dialog_you_are_not_updated();
            } else {
                show_dialog_you_are_updated();
            }
        }
    });
}
/* The methods update, show_dialog_you_are_not_updated, show_dialog_you_are_updated */
}

0 个答案:

没有答案