Как создать диалог, когда Thread.run () завершит работу? - PullRequest
0 голосов
/ 11 августа 2010

Я разрабатываю функцию диспетчера загрузки, которая появляется после завершения загрузки элемента. функция загрузки работала в фоновом режиме.

мой вопрос: как я могу узнать, когда загрузка была завершена, и проект намеревается заняться другими делами?

например:

if(download_state == TASK_FINISH){
    //download Finish
    openfile();
    }

вышеприведенный метод куда мне поставить? я пытаюсь поставить его на onResume (), onStart () в каждой деятельности, которая будет открыта пользователем. но не повезло, что это не сработает. Ваш ответ приветствуется.

p / s: Извините за мой плохой английский, надеюсь, вы, ребята, понимаете, о чем я говорю.

Спасибо.

1 Ответ

9 голосов
/ 11 августа 2010

Это метод, который я использую. Могут быть и лучшие способы, но это работает для меня.

public static final int MSG_DOWNLOADED = 0;
//to demonstrate the background process
ProgressDialog pd;

pd = ProgressDialog.show(this, "title", "text", true, false);
new Thread() {
    public void run() {
        // Download image then continue
        // For Example: downloadImg("file");
        handler.sendEmptyMessage(MSG_DOWNLOADED);
    }
}.start();

private Handler handler = new Handler() {

    @Override
    public void handleMessage(Message msg) {
        switch (msg.what) {
            case MSG_DOWNLOADED:
                pd.dismiss();
                // What to do when ready, example:
                [yourclass].this.startActivity(
                    new Intent( [yourclass].this, [yourintent].class ) );
                break;
            }
        }
    };
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...