android 中的Timer

Timer 在开发中主要用在定时器的功能上

它有个方法 schedule(1. TimerTask,  2.j时间)

在Activity中

public class TimerTaskActivity extends Activity {
 
    private Timer mTimer;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // init timer
        mTimer = new Timer();
        // start timer task
        setTimerTask();
    }
 
    @Override
    protected void onDestroy() {
        super.onDestroy();
        // cancel timer
        mTimer.cancel();
    }
 
    private void setTimerTask() {
        mTimer.schedule(new TimerTask() {
            @Override
            public void run() {
                Message message = new Message();
                message.what = 1;
                doActionHandler.sendMessage(message);
            }
        }, 1000, 1000/* 表示1000毫秒之後,每隔1000毫秒執行一次 */);
    }
 
    
    private Handler doActionHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
           //...
        }
    };
}

2.在Service中

public class AlarmService extends Service {

    @Override
    public void onCreate() {
        super.onCreate();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Timer alarmTimer = ((MyApplication)getApplication()).getAlarmTimer();
        if(null != alarmTimer){
            alarmTimer.cancel();
            alarmTimer.purge();
        }
        alarmTimer = new Timer();
        ((MyApplication)getApplication()).setAlarmTimer(alarmTimer);
        alarmTimer.schedule(new TimerTask() {
            @Override
            public void run() {
                Intent alarmIntent = new Intent(AlarmService.this, AlarmReceiver.class);
                alarmIntent.setAction("cn.test.packageName");//要在清单文件中配置发送广播节点
                sendBroadcast(alarmIntent);
            }
        },1000);
        return START_STICKY;
    }

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值