Androidにおけるタイミングタスクの実現(まとめ)

1087 ワード

Androidにおけるタイミングタスクの実現には主に2つの方法がある:TimerとAlarm.
このうち、Timerはバックグラウンドで長期にわたって実行する必要があるタイミングタスクを実行するのに適していない(携帯電話がスリープすると、Timerのタイミングタスクが実行できない可能性がある).AlarmはCPUを起動する機能を持ち,長期バックグラウンドタイミングタスクに適している.
(一)Timerの基本的な使い方
private Timer mTimer;
mTimer = new Timer();
mTimer.schedule(new TimerTask() {
    @Override
    public void run() {
        LogUtil.e("TAG", "    ");
    }
}, 1000, 5000);

(二)Alarmの基本的な使い方
//  AlarmManager  
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
//      
long triggerAtTime = System.currentTimeMillis() + 5 * 1000;
//      
Intent intent = new Intent(mContext, CardViewActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, intent, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP, triggerAtTime, pendingIntent);

メモ:タスクの実行時間を正確にする必要がある場合は、set()メソッドの代わりにsetExact()メソッドを使用します.
また、もう一つのタイミングタスククラスScheduledExecutorServiceはとても使いやすいです.参考資料:https://blog.csdn.net/lpCrazyBoy/article/details/82992946