2016-09-28 45 views
0

在第一次运行时,打开应用程序后,需要等待1秒钟,打开抽屉式导航1秒后导航抽屉应该关闭如何在android中使用等待函数?

SharedPreferences preferences= PreferenceManager.getDefaultSharedPreferences(this); 
    if (!preferences.getBoolean("Man",false)) 
    { 

    // wait 1 second    

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     drawer.openDrawer(Gravity.LEFT); 

    // wait 1 second 

     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     drawer.openDrawer(Gravity.RIGHT); 

     SharedPreferences.Editor editor=preferences.edit(); 
     editor.putBoolean("Man",true); 
     editor.commit(); 
    } 
+0

使用处理器与postDelayed。 –

回答

0

您可以使用Handler实现等待时间在你的代码

Handler handler = new Handler(); 
      handler.postDelayed(new Runnable() { 
       public void run() { 
        // Actions to do after 1 second 
       } 
      }, 1000); 
0

您可以使用Handler递归

boolean firstOpen = false; 
public void animateDrawer(){ 
    new Handler().postDelayed(new Runnable() { 
         @Override 
         public void run() { 
         if(!firstOpen) 
          { 
          // open your Drawer here 
          firstOpen = true; 
          animateDrawer(); 
          } 
          else 
          { 
          // close your Drawer here 
          } 
         } 
        },1000); 
//1000 is a 1 second delay 
} 
+0

我怎样才能在1秒后关闭它 –

+0

它在第一秒钟处理一个布尔条件时会自动调用它,在2秒后它不会自动调用它,所以在关闭抽屉后它会自行结束。 – Nitesh

0

你可以既可以使用CountDown Timer

new CountDownTimer(30000, 1000) { 

    public void onTick(long millisUntilFinished) { 
     mTextField.setText("seconds remaining: " + millisUntilFinished/1000); 
     //here you can have your logic to set text to edittext 
    } 

    public void onFinish() { 
     mTextField.setText("done!"); 
    } 

}.start(); 

或交推迟,

final Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
     //Do something after 100ms 
     Toast.makeText(c, "check", Toast.LENGTH_SHORT).show(); 
     handler.postDelayed(this, 2000); 
     } 
    }, 1500);