Bairra de progresso no listview enquanto o download do file AsyncTask

Estou tendo um problema estranho, eu tenho um novo assassino lançado sempre que eu encontrair um file MP3 no webbrowser, e uma bairra de progresso na list paira cada AssincTask. Portanto, o número de downloads pode ser superior a 1 e simultâneo. Mas agora, sempre que o Asynctask é lançado, o ProgressBair move o mesmo paira todos e não é diferente paira diferentes AsyncTask, Plz me guia …….

LISTVIEW COM PROGRESS BAR

  • Display Keyboaird paira EditText no Emulator (GenyMotion) Android 4.3
  • Como evitair um brinde se houview um brinde já sendo mostrado
  • ViewPager dentro do problema do fragment
  • Obtendo o Android Map do Google v2 trabalhando na viewsão de lançamento, gerando a printing digital SHA1 paira a key da API
  • Sessão de login - Atividades
  • Android: não pode replace um fragment por outro
  • public class CopyOfDownloadsListActivity extends ListActivity { /** Called when the activity is first created. */ // static ArrayList<String> pthreads = new ArrayList<String>(); ImageView bt; ProgressBair pb; ListView allList; TextView tv; String fileName; String mp3URL; URL url2; int filecount = 0; private class DownloadFile extends AsyncTask<String, Integer, Void>{ MyCustomAdapter adapter; int count = 0; ProgressDialog dialog; ProgressBair progressBair; int myProgress; @Oviewride protected Void doInBackground(String... u) { try { URL ul = new URL(u[0]); Log.i("UI",ul.toString()); // int len = CopyOfMusicDownloader.mp3urls.size(); // URL url2 = new URL(CopyOfMusicDownloader.mp3urls.get(len-1)); HttpURLConnection c = (HttpURLConnection) ul.openConnection(); c.setRequestMethod("GET"); c.setDoOutput(true); c.connect(); int lengthOfFile = c.getContentLength(); String PATH = Environment.getExternalStorageDirectory() + "/download/"; Log.v("", "PATH: " + PATH); File file = new File(PATH); file.mkdirs(); fileName = "Track"; filecount++; fileName = fileName + Integer.toString(filecount) + ".mp3"; File outputFile = new File(file, fileName); FileOutputStream fos = new FileOutputStream(outputFile); InputStream is = c.getInputStream(); byte[] buffer = new byte[1024]; int len1 = 0; while ((len1 = is.read(buffer)) != -1) { myProgress = (int)((len1/lengthOfFile)*100); myProgress = myProgress + myProgress; Log.i("lengthOfFile", Integer.toString(lengthOfFile)); Log.i("My Progress", Integer.toString(myProgress)); publishProgress(myProgress); fos.write(buffer, 0, len1); } fos.close(); is.close(); }catch (IOException e) { e.printStackTrace(); } return null; } protected void onPostExecute() { } @Oviewride protected void onPreExecute() { adapter = new MyCustomAdapter(CopyOfDownloadsListActivity.this, R.layout.row, CopyOfMusicDownloader.mp3urls); setListAdapter(adapter); } @Oviewride protected void onProgressUpdate(Integer... values) { Log.i("Value", values[0].toString()); count++; adapter.notifyDataSetChanged(); } public class MyCustomAdapter extends ArrayAdapter<String> { public MyCustomAdapter(Context context, int textViewResourceId, ArrayList<String> pthreads) { super(context, textViewResourceId, pthreads); } @Oviewride public View getView(int position, View conviewtView, ViewGroup pairent) { LayoutInflater inflater = getLayoutInflater(); View row = inflater.inflate(R.layout.row, pairent, false); bt =(ImageView)row.findViewById(R.id.cancel_btn); tv =(TextView)row.findViewById(R.id.filetext); pb = (ProgressBair)row.findViewById(R.id.progressbair_Horizontal); pb.setProgress(count); return row; } } } 

    Este é o início do AsyncTask, e é onCreate new DownloadFile (). Execute (url2.toString ());

  • Vairiável estática em múltiplas subclasss diferentes - corrigidas
  • Retrofit Post Pairameter
  • Android - Contato do número com o Código do País
  • Limpe a stack de atividades e inicie a nova atividade no Android
  • Como posso reproduzir um vídeo em pedaços de bytes?
  • Mudando a cor de um dia em calendairview, Android
  • 2 Solutions collect form web for “Bairra de progresso no listview enquanto o download do file AsyncTask”

    Seu problema é este static ProgressBair pb;

    Você não pode ter uma única reference estática e espera controlair várias bairras de progresso. Encapsule completamente o ProgressBair dentro do AsyncTask, faça dele uma vairiável de instância.

    EDITAR

    Em onProgressUpdate você precisa alterair o progresso do ProgressBair. Você não precisa de um adaptador paira cada linha, é um desperdício.

     @Oviewride protected void onProgressUpdate(Integer... values) { Log.i("Value", values[0].toString()); count++; progressBair.setProgress(count); } count ++; @Oviewride protected void onProgressUpdate(Integer... values) { Log.i("Value", values[0].toString()); count++; progressBair.setProgress(count); } 

    Você também nunca atribui um valor progressBair, você continua avaliando o pb , se livra dessa vairiável! Em você Preempecute você continua reatribuindo o adaptador da Lista.

    Você precisa de muitas modificações. Crie um único adaptador que gerencie o listview. Cada linha pode ter um AsyncTask que mantém sua própria bairra de progresso, exibição de image e exibição de text.

    Além disso, leia as notas em execute () aqui:

    http://developer.android.com/reference/android/os/AsyncTask.html#execute%28Pairams…%29

    Após o Honeycomb, haviewá apenas um thread executando todos os ASyncTasks paira que você provavelmente não pode executair mais de um simultaneamente. Após o primeiro, o resto ficairá em queue e não será executado até que o primeiro termine. Você provavelmente precisairá executair cada download em um Thread e usair um único ASyncTask paira monitorair todos eles. (Você pode monitorair a pairtir de um Thread também, mas você precisa tomair medidas extras paira publicair mensagens de forma segura na UI no segmento UI).

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.