2011-12-30 18 views
10

Staram się wyświetlać msg co 1 min !! bez końca! znalazłem przykład, który wyświetla msg tylko raz po ustalonym opóźnieniu !! możesz pomóc, jak to ustawić? lub jeśli używanie timera jest lepsze, jak to działa, potrzebuję przykładu!handler lub timer android

public class TimertestActivity extends Activity { 
    /** Called when the activity is first created. */ 

     @Override 
     public void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 
     setContentView(R.layout.main); 
     Handler handler = new Handler(); 
     handler.postDelayed(
      new Runnable() { 
       public void run() { 
        afficher(); 
       } 
      }, 1000L); 

     } 

     public void afficher() 
     { 
      Toast.makeText(getBaseContext(), 
        "test", 
        Toast.LENGTH_SHORT).show(); 
     } 
} 

Dzięki!

+0

Jeśli znalazłeś rozwiązanie, które pracuje dla Ciebie, proszę przyjąć odpowiedź. –

Odpowiedz

24

Spróbuj tego kodu -

public class TimertestActivity extends Activity { 
    Handler handler = new Handler(); 
    Runnable runnable = new Runnable() { 
     public void run() { 
      afficher(); 
     } 
    }; 

    /** Called when the activity is first created. */ 

     @Override 
     public void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 
     setContentView(R.layout.main); 
     runnable.run(); 
     } 

     public void afficher() 
     { 
      Toast.makeText(getBaseContext(), 
        "test", 
        Toast.LENGTH_SHORT).show(); 
      handler.postDelayed(runnable, 1000); 
     } 
} 
+1

yaaaaaah świetnie działa poprawnie! wielkie dzięki :) –

+0

Wspaniale, że pomaga. Proszę również zaakceptować odpowiedź, jeśli pomaga. – anujprashar

+0

jak mogę to zrobić ??? –

1

Można użyć TimerTask dla this.But gdy urządzenie idzie spać nie będzie działała więc myślę, że można użyć AlarmManager do tego. Zresztą patrz this link dla TimerTask,

kod AlarmManager,

AlarmManager am = (AlarmManager) Context.getSystemService(Context.ALARM_SERVICE); 
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, 
       SystemClock.elapsedRealtime(), interval, pendingIntent); 
+0

Ale w menedżerze alarmów nie możesz pokazać wiadomości toastowej. Pokaże się nowa aktywność. Ale to ci pomoże. –

2
// Timer using Handler 

private final int SPLASH_TIME = 3000; 

// Handling splash timer. 
private void startSplashTimer() { 
    new Handler().postDelayed(
    new Runnable() { 
    @Override 
    public void run() { 
     startActivity(new Intent(SplashScreen.this,MainActivity.class)); 
    } 
}, SPLASH_TIME); 

}