Сообщение набора хода выполнения Android из файла класса

1

У меня есть следующий код, который загружает видео с помощью AsyncTask.

//DOWNLOAD VIDEOS
private class downloadVideosAsync extends AsyncTask <String, String, String>{

    protected void onPreExecute(){
        super.onPreExecute();
        MyActivity.this.mProgressDialog.setMessage("Downloading Videos...");
    }

    @Override
    protected String doInBackground(String... strings){
        try{

            VideosC.downloadVideos( VideosM.getVideoNames(), VideosM.getVideoUrls(), 
                                    VideosM.getVideoThumbs(), VideosM.getFileModified() );

        }catch (NullPointerException e){
            Log.e(LOG_TAG, e.toString());
        }catch(Exception e){
            Log.e(LOG_TAG, e.toString());
        }
        return null;
    }

    @Override
    protected void onPostExecute(String lenghtOfFile) {
        new downloadSlideshowsAsync().execute();
    }
}

Как вы можете видеть, я установил сообщение "Загрузка видео..." для моего диалога хода. Теперь я хочу сделать что-то вроде setMessage ("Загрузка 1 из 5"). Но проблема в том, что моя функция downloadVideos находится в другом файле класса VideoController.java

public void downloadVideos( ArrayList<String> VideoNames, ArrayList<String> VideoUrls,
                                ArrayList<String> VideoThumbs, ArrayList<String> fileModified){

    try{
        int x;
        int videoNamesLenght = VideoNames.size();
        File vidFile;
        for(x = 0; x < videoNamesLenght; x++) {

            String[] videoName = VideoNames.get(x).split("/");
            String currentFile = videoName[0] + "." + videoName[1];
            String currentFileURL = VideoUrls.get(x) + VideoNames.get(x);
            Log.v(LOG_TAG, "currentFileURL: " + currentFileURL);

            vidFile = new File(Environment.getExternalStorageDirectory() 
                                + "/MyApp/Downloads/Videos/", currentFile);

                    //I want to do maybe here something like
                    //mProgressDialog.setMessage("Downloading x of y")

            downloadVideoFile(currentFile, currentFileURL, vidFile, fileModified.get(x));

        }
    }catch(Exception e){
        Log.e(LOG_TAG, e.toString());
    }
}

Есть идеи? Большое спасибо за любую помощь! :)

Теги:
progressdialog
message

1 ответ

1
Лучший ответ

Вы можете определить статическую функцию в Activity, которая вызывает VideoController. В этой функции вы можете отправить сообщение Handler и обработать его.

  • 0
    Спасибо за ваш ответ @rafeal piao, но у вас есть пример кода для него, я на самом деле новичок. :)
  • 0
    Извините, у меня нет образца в моей руке.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню