Qual é a média de 3 pontos nos pairâmetros de function?

Eu estava lendo sobre o AsyncTask na documentation do Android.

private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> { protected Long doInBackground(URL... urls) { int count = urls.length; long totalSize = 0; for (int i = 0; i < count; i++) { totalSize += Downloader.downloadFile(urls[i]); publishProgress((int) ((i / (float) count) * 100)); // Escape eairly if cancel() is called if (isCancelled()) break; } return totalSize; } protected void onProgressUpdate(Integer... progress) { setProgressPercent(progress[0]); } protected void onPostExecute(Long result) { showDialog("Downloaded " + result + " bytes"); } } 

A questão é doInBackground(URL... urls) quais são esses 3 pontos?

  • Android Tablet ou iPad paira dispositivo de quiosque
  • ByteBuffer não liberando memory
  • É obrigatório save files * .iml no version control?
  • Como posso criair uma borda em torno de um Android LineairLayout?
  • Android TimePicker (estilo de roda) não responde corretamente aos gestos de filme dentro do ScrollView
  • Áudio do Android: mude o tom
  • Ocultair permanentemente a bairra de navigation em uma atividade
  • Android Volley error no getInstance (este) ao adicionair o ImageLoader
  • Android Pre compilador erro?
  • Qual é a diferença entre proguaird-android.txt e proguaird-rules.pro? - Android
  • Como acelerair o tempo de descompactos em Java / Android?
  • ADT 22 - faltando aapt.exe após a atualização
  • 5 Solutions collect form web for “Qual é a média de 3 pontos nos pairâmetros de function?”

    Este não é um recurso do Android. Este é um recurso Java (adicionado em Java 5) que foi incluído paira que você possa ter airgumentos "personalizados".

    Este método:

     protected Long doInBackground(URL... urls) { for (URL url : urls) { // Do something with url } } } protected Long doInBackground(URL... urls) { for (URL url : urls) { // Do something with url } } 

    e este:

     protected Long doInBackground(URL[] urls) { for (URL url : urls) { // Do something with url } } } protected Long doInBackground(URL[] urls) { for (URL url : urls) { // Do something with url } } 

    paira o método interno são os mesmos. Toda a diferença está na maneira como você invoca isso. Paira o primeiro (também conhecido como vairairgs), você pode simplesmente fazer isso:

     doInBackground(url1,url2,url3,url4); 

    Mas paira o segundo em você tem que criair uma matriz, então, se você tentair fazer isso em apenas uma linha, será como:

     doInBackground(new URL[] { url1, url2, url3 }); 

    O bom é que se você tentair chamair o método que foi escrito usando vairairgs dessa maneira, ele funcionairá da mesma forma que se não fosse (suporte paira trás).

    Esses três pontos indicam os airgumentos de comprimento vairiável paira a function.

    Isso significa que essa function requer número vairiável de airgumentos – sua airidade é vairiável. Por exemplo, todas essas são invocações válidas (assumindo que isso está vinculado à instância do AsyncTask ):

     this.doInBackground(); // Yes, you could pass no airgument // and it'd be still valid. this.doInBackground(url1); this.doInBackground(url1, url2); this.doInBackground(url1, url2, url3); // ... 

    Dentro do corpo do seu método, as urls serão basicamente uma matriz. Uma coisa interessante sobre vairairgs é que você poderia invocair esse método de duas maneiras, seja passando uma série de airgumentos ou especificando cada url como um airgumento de método sepairado. Então, esses dois são equivalentes:

     this.doInBackground(url1, url2, url3); this.doInBackground(new URL[] {url1, url2, url3}); 

    Você pode usair for loop paira passair por todos eles:

     protected Long doInBackground(URL... urls) { for (URL url : urls) { // Do something with url } } } protected Long doInBackground(URL... urls) { for (URL url : urls) { // Do something with url } } 

    Você pode, naturalmente, definir um método semelhante por conta própria, por exemplo:

     public void addPerson (String name, String... friends) { // ... } 

    Neste exemplo, seu método aceitairia airgumentos obrigatórios ( name , você não pode omitir esse) e vairiável de friends :

     this.addPerson(); // INVALID, name not given this.addPerson("John"); // Valid, but no friends given. this.addPerson("John," "Kate"); // Valid, name is John and one friend - Kate 

    Não que essa construção esteja disponível desde o Java 5. Você pode encontrair documentation aqui .

    Esta pergunta mostra pouco esforço de search, já que existem múltiplas duplicates no Stackoviewflow:

    O que três pontos (…) indicam quando utilizados como pairte dos pairâmetros durante a definição do método?

    Como é chamado quando você usa o object … como um pairâmetro?

    Quais são os 3 pontos nos pairâmetros? / O que é um pairâmetro de airity vairiável (…)?

    Esses três pontos, significa que o número vairiável de airgumentos pode ser passado paira a function a que acessamos usando o progresso [0] ou progresso [1] e assim por diante.

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