AsyncTask для обновления счетчика пользовательского интерфейса, который вызывается в другом классе в Android

#android #android-asynctask #android-service #android-thread

#Android #android-asynctask #android-сервис #android-thread

Вопрос:

Мне нужно динамически обновлять счетчик загрузки файлов в Ui progressbar, который вызывается в другом методе класса. Как можно взаимодействовать между AsyncTask doInBackground() и MyClass.uploadFiles().uploadFiles. пожалуйста, помогите мне

это действие

   public class MyActivity extends AppCompatActivity {

        private ProgressDialog dialog = null;
        String status;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_file);
            
              CounteTask task = new CounteTask();
              task.execute();
            
        }

            private class CounteTask extends AsyncTask<String, Integer, Void> {


                @Override
                protected Void doInBackground(String... params) {

                    try {

                        status = myClass.uploadFiles(MyActivity.this);
                    } catch (Exception e) {

                        dialog.dismiss();
                    }

                    return null;
                }

                @Override
                protected void onPostExecute(Void resultGetlogin) {

                    dialog.dismiss();
                }

                protected void onPreExecute() {
                    dialog = ProgressDialog.show(Sync_Records.this, "", "Please wait, file count..");
                }

                protected void onProgressUpdate(Integer... values) {
                    
                }

            }
  }
  

MyClass.java отсюда необходимо обновить поток пользовательского интерфейса.

         public void MyClass{
        
            public static String uploadFiles(Context context) {
            
                  for (count=0 ; count <= 10; count  ) {
                     try {
                            upload(count);                            //need to show each count of file which is currently uploading

                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
            
            }
            return status;
        
        }
  

Комментарии:

1. public void myClass Пожалуйста, придерживайтесь соглашения Java, начиная имена классов с большой буквы. Ваш код сейчас трудно читать. public void MyClass

2. Простым решением было бы поместить цикл for в doInBackground, а затем вызвать MyClass.uploadFile(count).

3. Спасибо. Это я могу сделать. Но я хочу именно тот поток, который описан выше. Итак, любым другим способом.