#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. Спасибо. Это я могу сделать. Но я хочу именно тот поток, который описан выше. Итак, любым другим способом.