android实现定时器
❶ android 定时器暂停 可以用canel()方法 但我又想再次唤起 用什么方法
android 定时器是一个线程,线程canel 以后,只能重新new 并调用 start启动。
具体实现代码:
创建线程定时器同理
Thread thread = new Thread();
thread.start(); 启动线程
当线程或定时器停止后,需要重新new
thread = new Thread();
thread.start(); 重新启动线程或定时器
❷ 有关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 可以正常的休眠,只有在需要运行任务时醒来一段很短的时间。
❹ android中定位百度地图怎么设置一个定时器每十分钟
可以设置定位的时间间隔参数,然后在定位成功时候把数据post到相应的接口就可以上传到服务器啦android中定位网络地图怎么设置一个定时器每十分钟
❺ 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 确定时间点自动更新数据的定时器
这个定时器写出来并没有什么难度,难点在于需要保证定时器不被杀死!写一个service来作为更新数据的后台服务,然后利用广播来保证此service不被杀死,即使杀死后仍能重启!
❼ android service 做个定时器 时间到了无论在那个程序都会显示对话框
只需要在service里弹出一个全局对话框即可,以下是示例代码:
1.创建对象框
AlertDialog.Builder builder = new Builder(context);
builder.setTitle("请输入"); //设置对话框标题
builder.setIcon(android.R.drawable.btn_star); //设置对话框标题前的图标
2.创建EditText输入框
final EditText edit = new EditText(context);
3.将输入框赋值给Dialog,并增加确定取消按键
builder.setView(edit);
builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你输入的是: " + edit.getText().toString(), Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你点了取消", Toast.LENGTH_SHORT).show();
}
});
4.设置常用api,并show弹出
builder.setCancelable(true); //设置按钮是否可以按返回键取消,false则不可以取消
AlertDialog dialog = builder.create(); //创建对话框
dialog.setCanceledOnTouchOutside(true); //设置弹出框失去焦点是否隐藏,即点击屏蔽其它地方是否隐藏
dialog.show();
❽ android 一个1小时倒计时定时器,怎么做到关闭或退出页面后定时器倒计时依
不用退出,直接按home键,保持后台运行就行了
❾ android定时器开发中如何实现不受时差的影
我不明白,定时器为什么要受时差的影响。定时器不是倒计时走完一段时间而已。时差怎么去影响到他
❿ 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 需要是唯一的