android定时器
Ⅰ Android定时器程序源代码
使用TimerTask,网络上有的是例子
Ⅱ android 哪种 定时器比较好
AlarmManager
这个可以唤醒cpu。
其他的在屏幕关掉后不会运行
Ⅲ android 定时器如何让某天某个时间启动
Android中使用AlarmManager进行定时操作,现在需要启动多个定时器,但无论采用哪种方式后面的定时器都会将前面的定时器覆盖掉(Android系统版本2.1),只启动最后一个定时器,见代码 java code// 方式一for (int i = 0; i < 10; i ++) { ... AlarmManager am = null; am = (AlarmManager) context.getApplicationContext().getSystemService(Context.ALARM_SERVICE); ... Intent i = new Intent("xxx"); PendingIntent sender = PendingIntent.getBroadcast(context.getApplicationContext(), 0, i, PendingIntent.FLAG_UPDATE_CURRENT); ... am.setRepeating(...);}// 方式二AlarmManager am = null;am = (AlarmManager) context.getApplicationContext().getSystemService(Context.ALARM_SERVICE);for (int i = 0; i < 10; i ++) { ... Intent i = new Intent("xxx"); PendingIntent sender = PendingIntent.getBroadcast(context.getApplicationContext(), 0, i, PendingIntent.FLAG_UPDATE_CURRENT); ... am.setRepeating(...);} 请问如果要实现启动多个定时器应该怎么操作?Android系统的闹钟就是采用AlarmManager进行操作的,如何才能启动多个定时器呢?先谢谢大家了 ------解决方案-------------------- public static PendingIntent getBroadcast(Context context, int requestCode, Intent intent, int flags) requestCode 需要是唯一的
Ⅳ android定时器是否会被系统杀死
系统自带的不会,第三方的会。但是都不能放到后台运行,不然可能会因为RAM不足而自动释放空间。
Ⅳ 有关Android中定时器的问题
你这里犯了一个基本的错误。
你的timer是没有问题的,问题在Toast.makeText(e201301.this, "ABCD", Toast.LENGTH_LONG).show();中。
另外你说没有报错,我不太相信,logcat里面应该会有log出来的。除非你的logcat有问题。
另外把Toast.makeText(e201301.this, "ABCD", Toast.LENGTH_LONG).show();
换成其他基本的语句应该是不会有问题的。
这里的问题主要出在你用timer开了一个新线程,然后你希望在新线程里面,直接在UI线程上显示东西。于是就有错了。
如果你只是为了测试timer,你可以把Toast.makeText(e201301.this, "ABCD", Toast.LENGTH_LONG).show();
换成Log.e("Timer在运行", "ABCD");
这样你就会看到logcat里面,按照你设定的时间,不断的输出这句LOG。也就是Timer正常运行了。
如果你依旧希望能在UI线程上显示什么,那么你可以参考下线程间通信的handle、Message。或者简单利用AsyncTask等
Ⅵ android定时器alarmmanager和timer的区别
Java的Timer类可以用来计划需要循环执行的任务。
简单的说,一个Timer内部封装装了“一个Thread”和“一个TimerTask队列”,这个队列按照一定的方式将任务排队处理。封装的Thread在Timer的构造方法调用时被启动,这个Thread的run方法按照条件去循环这个TimerTask队列,然后调用TimerTask的run方法。
但是,如果CPU进入了休眠状态,那么这个thread将会因为失去CPU时间片而阻塞,从而造成我们需要的定时任务失效。上述定时任务失效的场景分析:假设定时任务的条件是到了时间xx:yy才能执行,但由于cpu休眠造成线程阻塞的关系,当前系统时间超过了这个时间,即便CPU从终端中恢复了,那么由于条件不满足,定时任务在这一次自然就失效了。
它需要用WakeLock让CPU 保持唤醒状态。这样会大量消耗手机电量,大大减短手机待机时间。这种方式不能满足需求。
AlarmManager是Android 系统封装的用于管理RTC的模块,RTC(Real Time Clock) 是一个独立的硬件时钟,可以在 CPU 休眠时正常运行,在预设的时间到达时,通过中断唤醒CPU。这意味着,如果我们用 AlarmManager 来定时执行任务,CPU 可以正常的休眠,只有在需要运行任务时醒来一段很短的时间。
Ⅶ 安卓定时器Handler如何关闭
{
publicTimeCounts(longmillisInFuture,longcountDownInterval){
super(millisInFuture,countDownInterval);//参数依次为总时长,和计时的时间间隔
}
@Override
publicvoidonFinish(){//计时完毕时触发
}
@Override
publicvoidonTick(longmillisUntilFinished){//计时过程显示
//倒计时数可以写在这儿
}
}
TimeCounts timeCounts = new TimeCounts(30000, 1000);//总时长30s,间隔1s
timeCounts.start();//倒计时开始
timeCounts.cancel();//取消倒计时
Ⅷ 新手对于Android定时器的问题
私信给你了
Ⅸ Android Studio定时器!
你的意思是,假设3个RadioButton,第一个设为10秒,第二个设为20秒,第三个设为30秒,然后一起倒计时到0吗?如果是这样的话,只需要在Handler的handleMessage中去减时间就行了。
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
xx.setText(Integer.parseInt(xx.getText()-1);
}
};
Ⅹ android设置定时器调用时设置时间
你的意思是,假设3个RadioButton,第一个设为10秒,第二个设为20秒,第三个设为30秒,然后一起倒计时到0吗?如果是这样的话,只需要在Handler的handleMessage中去减时间就行了。
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
xx.setText(Integer.parseInt(xx.getText()-1);
}
};