web-dev-qa-db-ja.com

ハンドラーまたはタイマーandroid

私は1分ごとにメッセージを表示しようとしています!!ノンストップ!一定の遅延の後にメッセージを1回だけ表示する例を見つけました!!どのようにそれを設定することができますか?または、タイマーを使用する方がうまく機能する場合は、例が必要です!!

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

ありがとう!

10
manita marwa

このコードを試してください-

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);
      }
}
24
anujprashar
// 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);

}

2
Sanjeev Kumar

これにはTimerTaskを使用できます。ただし、デバイスがスリープ状態になると機能しないため、これにはAlarmManagerを使用できると思います。とにかく参照 このリンク for TimerTask

AlarmManagerコード、

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