2012-06-28 4 views
1

До сих пор я использовал Timer, который находится в javax.swing.timer. Все, что мне нужно было сделать, это выбрать скорость и метод с определенным именем, которое выполняет то, что я хочу, чтобы таймер выполнял каждый раз.Использование таймера java

Я теперь начал программирование Android приложения в последнее время и я столкнулся с несколько проблем ...

  1. Он не позволил бы мне использовать или импортировать javax.swing.timer
  2. Я попытался с помощью java.util.timer, но я не смог выяснить, как это работает

Все, что я хочу для своего таймера, так что я могу отображать свой логотип в течение 3 секунд, а затем перейти в главное меню - даже если есть более легкое решение для этого, мне все равно понравится знать, как использовать таймер

Для человека, который сказал мне попробовать использовать нить - вот мой код - он вообще не рисует первый экран, он просто остается пустым в течение 3 секунд, а затем переходит к следующей строке кода ...

public class logo extends Activity { 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     try { 
      setContentView(R.layout.logoview); 
      Thread.sleep(3000); 
     } 
     catch (InterruptedException e){ 
      e.printStackTrace(); 
     } 

     setContentView(R.layout.main); 
    } 

    public void startup (View view){ 
     Intent intent0 = new Intent (this,ExpiramantingActivity.class); 
     startActivity(intent0);} 
    } 
} 
+1

, что вы не могли бы использовать с java.util.Timer? его довольно простой в вашем случае. можете ли вы предоставить код и любую ошибку? – kommradHomer

+0

Я не понимаю, как это работает, что такое timertasks? Я попробовал что-то вроде этого: Таймер таймера1 = новый таймер(); \t timer1.schedule (запуск(), 1000) \t общественности недействительным запуска (View Вид) { \t \t \t \t Намерение intent0 = новый Intent (это, ExpiramantingActivity.class); \t \t startActivity (intent0);} – user1486061

ответ

1

в функции onCreate() вашего класса SplashActivity, назначьте обработчик для отображения активности вашего основного меню через 3 секунды. это должно быть сделано после setContentView (R.layout.splashscreen);

new Handler().postDelayed(new Runnable() { 

       @Override 
       public void run() { 
        startActivity(new Intent(SplashActivity.this, 
          YourMainMenuActivity.class)); 
        finish(); 
       } 
      }, 3000); 
+0

спасибо, что это работает – user1486061

0

Возможно, вы можете использовать Thread? Я думаю, что это самый простой способ сделать то, что вы хотите:

Где вы показываете свой логотип:

try { 
    //show your logo here 
    Thread.sleep(3000); //3 seconds 
} catch (InterruptedException e) { 
    e.printStackTrace(); 
} 

Ближ.населенного код в Try/поймать блок очень важен, из-за есть возможности исключения.

+1

нить сон никогда не является ответом, если вы хотите выполнять заданные по времени задания – kommradHomer

+0

Может быть, вы можете объяснить, почему? Я тоже начинаю, так что прощай :) –

+1

:) потому что, java.util.timer - это целая установка, посвященная определению сроков ваших задач. Я предлагаю вам ознакомиться с документами и проверить некоторые примеры. Снежный поток настолько сырой и не управляется для такого использования. http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Timer.html – kommradHomer

0

Я считаю, что то, что вы пытаетесь сделать, похоже на выставку Splash Screen. Если да, пожалуйста, проверьте это Oracle tutorial.

+0

ли это работает с приложениями для Android? где должен появиться экран заставки? – user1486061

+0

Я не знаком с окружающей средой Android, но посмотрите эту ссылку: http://www.droidnova.com/how-to-create-a-splash-screen,561.html – rlinden

0

попробовать это:

// logo 
Thread timer = new Thread(){ 
      public void run(){ 
       try{ 
        sleep(3000); 
       } catch (InterruptedException e){ 
        e.printStackTrace(); 
       } 
      }; 
     }; 
     timer.start(); 

//next code 
Смежные вопросы