2016-09-29 94 views
0

我使用handler.postDelayed()方法重複任務與時間延遲..這是我的代碼;與handler.postDelayed()方法的問題

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); 

的問題是與變量(拾取,目的地,請求)例如請求其是boolean我聲明瞭它在beggining爲假,之後我設置它真正在oncreate() ..並且在處理程序中,它每5秒鐘在真和假之間(這意味着在新值和舊值之間)改變值,與其他2個變量相同。

這是我的完整代碼:

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

你可以發佈該類的完整代碼? – RdlP

+0

好的,我會將它添加到主要問題中。 –

回答

0

不是問題handler.postDelayed(),試試吧,如果你想切換值。 皮卡=!皮卡,目標=!目的地,...

+0

我已經在切換值:「requested = true;」在oncreate()中,並且它在5秒內顯示爲true,然後顯示false。 –

+0

我真的不理解你的期望。請再次清除它。你的期望是你想顯示真實的,虛假的,真實的,虛假的,......或者它沒有你的手柄自動真正的假? –

+0

我的期望是不顯示:true,false,true,false,...這就是它自身的問題......我的期望是設置例如按鈕中的變量的值,並用處理程序發送這些更改 –