2016-07-28 10 views
-11

Ich möchte drucken wie:Anweisung für unendliche Zeiten mit Schleife wiederholen?

for(int i=0;i<should be infinite;i++) 
{ 
    Data is Loading. 
    sleep(100); 
    Data is Loading.. 
    sleep(100); 
    Data is Loading... 
    sleep(100); 
} 

Sie den Code unten ist es nicht

package com.queen.a01_simple_request; 

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class MainActivity extends AppCompatActivity { 
TextView textView; 
Button button; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    textView = (TextView) findViewById(R.id.textView); 
    button = (Button) findViewById(R.id.button); 

    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      for (; ;) { 
       try { 
        textView.setText("Downloading The File"); 
        Thread.sleep(1000); 
        textView.setText("Downloading The File."); 
        Thread.sleep(1000); 
        textView.setText("Downloading The File.."); 
        Thread.sleep(1000); 
        textView.setText("Downloading The File..."); 
        Thread.sleep(1000); 

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

}

Nun arbeiten, diese Schleife sollte für unendlich. Die Punkte sollten sich für immer ändern. Ich möchte nicht Wert wie ich setzen < 1000. Ich möchte dies implementieren.

+4

Wenn Sie eine unendliche Schleife wollen, dann machen Sie einfach eine 'while (true)' – mayha

+0

Würden Sie mir bitte ein Beispiel geben? –

+1

Einfach die Guard-Bedingung weglassen: 'für (int i = 0;/* nichts * /; i ++)'. –

Antwort

-1

Versuchen Sie folgendes:

while(true){ 
    code... 
} 
1

Die ersten drei "Teile" des basic for statement sind optional:

for ([ForInit] ; [Expression] ; [ForUpdate]) Statement 

So, während es seltsam aussieht, ist dies für Schleife eine gültig ist (das tut nichts , für immer):

for (;;); 

In Ihrem Fall auslassen nur Expression:

for (int i = 0; ; i++) { ... } 
0
for(;;){ 
    { 
    try{ 
    Data is Loading. 
    Thread.sleep(100); 
    Data is Loading.. 
    Thread.sleep(100); 
    Data is Loading... 
    Thread.sleep(100); 
    }catch(Exception ignored){} 
    } 

EDIT: , wenn Sie diese auf dem Hauptthread (UI Thread) tun es die Anwendung friert, müssen Sie die Schleife im Hintergrund wie folgt beginnen:

new Thread(new Runnable(){ 
    @Override 
    public void run(){ 
     for(;;){ 
      try{ 
      Data is Loading. 
      Thread.sleep(100); 
      Data is Loading.. 
      Thread.sleep(100); 
      Data is Loading... 
      Thread.sleep(100); 
      }catch(Exception ignored){} 
     } 
    } 
} 
+0

Youzking, es funktioniert nicht .. Wenn ich den Knopf drücke, ist es wie einfrieren ... –

+1

@AppleAppala gut duh. Sie haben eine Endlosschleife angefordert –

+0

@TimCastelijns yeh .. ich postete die Ausgabe oben ... es funktioniert nicht ... Bitte werfen Sie einen Blick .. –

Verwandte Themen