2016-09-29 1 views
0

Ich verwende handler.postDelayed() Methode, um eine Aufgabe mit Zeitverzögerung zu wiederholen .. das ist mein Code;ein Problem mit handler.postDelayed() Methode

final Handler handler = new Handler(); 
     handler.postDelayed(new Runnable() { 
      @TargetApi(Build.VERSION_CODES.LOLLIPOP) 
      public void run() { 

      Toast.makeText(MapsActivity.this,pickup+" "+destination+" "+ Boolean.toString(requested),Toast.LENGTH_LONG).show(); 
} 
}, 5000); 

ist das Problem mit den Variablen (Pickup, das Ziel, angefragt) beispielsweise beantragt, die ein boolean ist ich es als falsch an der beggining bin erklärt und nach, dass ich es richtig in oncreate() Einstellung .. und im Handler ändert sich der Wert alle 5 Sekunden zwischen wahr und falsch (das ist zwischen dem neuen und dem alten Wert). Das gleiche gilt für die anderen 2 Variablen.

das ist meine komplette Code:

String pickup="/",destination="/"; 
Boolean requested=false; 
int seats=0; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_maps); 

     // Obtain the SupportMapFragment and get notified when the map is ready to be used. 
     SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
       .findFragmentById(R.id.map); 
     mapFragment.getMapAsync(this); 

     if(getIntent().getExtras()!=null) 
     { 



      if(getIntent().getExtras().getString("class").equals("request")){ 
       pickup = getIntent().getExtras().getString("pickup"); 
       destination = getIntent().getExtras().getString("destination"); 
       seats = getIntent().getExtras().getInt("seats"); 


       if (!pickup.equals("")&&!pickup.equals("/")&&!destination.equals("")&&!destination.equals("/")&&seats!=0){ 


        requested=true; 

       } 

      } 
} 

     if (authenticate() == true) { 
      final Handler handler = new Handler(); 
      handler.postDelayed(new Runnable() { 
       @TargetApi(Build.VERSION_CODES.LOLLIPOP) 
       public void run() { 





        Toast.makeText(MapsActivity.this,pickup+" "+destination+" "+ Boolean.toString(requested),Toast.LENGTH_LONG).show(); 



        handler.postDelayed(this, 5000); 
       } 
      }, 5000); }} 
+0

Können Sie den vollständigen Code für diese Klasse veröffentlichen? – RdlP

+0

ok ich werde es in der Hauptfrage hinzufügen. –

Antwort

0

Nicht Problem mit handler.postDelayed(), es versuchen, wenn Sie Schaltwert soll. Pickup =! Pickup, Ziel =! Ziel, ...

+0

ich bin bereits Werte für exbleble: "requested = true;" in oncreate(), und es zeigt für 5 Sekunden und dann zeigt es falsch. –

+0

Ich verstehe deine Erwartungen wirklich nicht. Bitte löschen Sie es erneut. Ihre Erwartung ist, dass Sie wollen, zeigen wahr, falsch, wahr, falsch, ... oder es ist wahr falsch ohne Ihren Griff? –

+0

meine Erwartung ist nicht zu zeigen: wahr, falsch, wahr, falsch, ... das ist das Problem selbst ... meine Erwartung ist, die Werte der Variablen von einer Schaltfläche zum Beispiel zu setzen und diese Änderungen mit einem Handler zu senden –