android定时器的使用
⑴ Android定时器程序源代码
使用TimerTask,网络上有的是例子
⑵ 有关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设置定时器调用时设置时间
你的意思是,假设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 定时器暂停 可以用canel()方法 但我又想再次唤起 用什么方法
android 定时器是一个线程,线程canel 以后,只能重新new 并调用 start启动。
具体实现代码:
创建线程定时器同理
Thread thread = new Thread();
thread.start(); 启动线程
当线程或定时器停止后,需要重新new
thread = new Thread();
thread.start(); 重新启动线程或定时器
⑸ 新手对于Android定时器的问题
私信给你了
⑹ android 哪种 定时器比较好
AlarmManager
这个可以唤醒cpu。
其他的在屏幕关掉后不会运行
⑺ android 一个1小时倒计时定时器,怎么做到关闭或退出页面后定时器倒计时依
不用退出,直接按home键,保持后台运行就行了
⑻ xamarin android 定时器怎么用
本文使用的环境是Windows 8 Visual Studio 2012.2 1.下载Xamarin 2.安装Xamarin 下载后运行EXE文件 之后经过一些必要的下一步 想要开发Android,Android肯定是要勾选了,IOS看心情 自己添加Android SDK路径 注意关闭已经打开的Visual Studio实例...
⑼ 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 可以正常的休眠,只有在需要运行任务时醒来一段很短的时间。
⑽ 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 需要是唯一的