如何以串行时间方式执行三个不同的任务?

how to execute three different task with serial time manner?

我需要执行三个不同的任务,每个任务应该执行 1000 毫秒、2000 毫秒、3000 毫秒。

你能告诉我更好的实施方式吗?哪个是最好的? 1.处理程序 2.定时任务 3.线程 4.ExecutorServices等

您可以使用AlarmManager来执行操作:

AlarmManager manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent alarmIntent = new Intent(this, AlarmReceiver.class);
alarmIntent.putExtra("Activity",1);
pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0);
manager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 1000, pendingIntent);
alarmIntent = new Intent(this, AlarmReceiver.class);
alarmIntent.putExtra("Activity",2);
pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0);
manager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 2000, pendingIntent);
alarmIntent = new Intent(this, AlarmReceiver.class);
alarmIntent.putExtra("Activity",3);
pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0);
manager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 3000, pendingIntent);

报警接收器class

public class AlarmReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "I'm running", Toast.LENGTH_SHORT).show();
        int extra = intent.getExtra("Activity");
        switch(extra) {
              case 1:
                     //start 1st activity

              case 2:
                     //start 2nd activity

              case 3:
                     //start 3rd activity
        }

    }
}

我正在为

使用处理程序

处理程序 handler = new Handler(); handler.postDelayed(新的 Runnable() {

        @Override
        public void run() {
            // TODO Auto-generated method stub

        }
    }, 1000);

    handler.postDelayed(new Runnable() {

        @Override
        public void run() {
            // TODO Auto-generated method stub

        }
    }, 2000);
    handler.postDelayed(new Runnable() {

        @Override
        public void run() {
            // TODO Auto-generated method stub

        }
    }, 3000);
}