导读 android多个计时器会影响性能吗 一个应用一般只有一到两个进程不会因为重复打开就增多进程;你说的应该是线程或是

android多个计时器会影响性能吗

一个应用一般只有一到两个进程不会因为重复打开就增多进程;你说的应该是线程或是任务之类的东西吧!~

android计时器timer(android秒表计时器)android计时器timer(android秒表计时器)


重复执行屏蔽有两个思路给你,一个是在广播接收时进行判断

onReceive中

if(timerTaskIsRunning){

timerTask.stop();//停止之前的计时器事件,方法自定

timerTask = new TimerTask();生成新的计时器事件

}另一种是在定时器里写,思路差不多的,你要看具体情况看哪种方式比较便于管理!

android studio怎么编写计时器

类似iOS中的NSTimer 定时器功能,开关控制随机几秒钟执行指定功能;

平台:Android

开发环境:android Studio

代码实现:

一. 创建Handler对象和Runnable对象

[java] view plain copy print?

Handler handler = new Handler();

Runnable runnable = new Runnable() {

@Override

public void run() {

if (mPageOpen){

if (interstitialAd.isLoaded()){ //示例-谷歌插页广告

interstitialAd.show();

}else {

AdRequest adRequest = new AdRequest.Builder().build();

interstitialAd.loadAd(adRequest);

}int random = (int)(Math.random() * 10 +20)*1000; //随机时间循环执行

handler.postDelayed(this, random);

}}

};

二. 开关控制

[java] view plain copy print?

Switch mSwith = (Switch) findViewById(R.id.switchPage);

mSwith.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

@Override

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

if (isChecked) {

mPageOpen = true;

} else {

mPageOpen = false;

}handler.postDelayed(runnable, 15000); //开关控制执行

}});

三. 移除定时器

[java] view plain copy print?

handler.removeCallbacks(runnable);

timer控件用法

Timer 控件(最主要的就是enabled属性,和Interval属性,下面有详细介绍)

通过引发 Timer 事件,Timer 控件可以有规律地隔一段时间执行一次代码。

语法

Timer

说明

Timer 控件用于背景进程中,它是不可见的

************************以下是他的属性****************

Enabled 属性

返回或设置一个值,该值用来确定一个窗体或控件是否能够对用户产生的事件作出反应。

语法

object.Enabled [= boolean]

Enabled 属性的语法包含下面部分:

部分 描述

object 对象表达式,其值是“应用于”列表中的一个对象。如果 object 被省略,则与活动窗体模块相联系的窗体被认为是 object。

boolean 一个用来指定 object 是否能够对用户产生的事件作出反应的布尔表达式。

设置

boolean 的设置为:

设置 描述

True (缺省)允许 object 对事件作出反应。

False 阻止 object 对事件作出反应。

Enabled 属性示例

该例子使一个 CommandButton 控件有效而不管 TextBox 控件是否包含文本。要试用此例,先将下面的代码粘贴到带有 CommandButton 和 TextBox 控件的一个窗体的声明部分,然后按下 F5 键并在文本框中随意输入一些内容。

Private Sub Form_Load ()

Text1.Text = "" ' 清除文本框的内容。

Command1.Caption = "Save" ' 在按钮上放置标题。

End Sub

Private Sub Text1_Change ()

If Text1.Text = "" Then '查看文本框是否为空。

Command1.Enabled = False '使按钮无效。

Else

Command1.Enabled = True '使按钮有效。

End If

End Sub

Interval 属性

返回或设置对 Timer 控件的计时事件各调用间的毫秒数。

语法

object.Interval [= milliseconds]

Interval 属性语法有以下组成部分:

部分 描述

object 对象表达式,其值是“应用于”列表中的一个对象。

milliseconds 数值表达式,指定毫秒数,“设置值”中有详细说明,。

设置值

milliseconds 的设置值为:

设置值 描述

0 (缺省值)使 Timer 控件无效。

1 to 65,535 设置的时间间隔(以毫秒计),在 Timer 控件 Enabled 属性设置为 True 时开始有效,例如,10,000 毫秒等于 10 秒。最大值为 65,535 毫秒,等于 1 分钟多一些。

说明

可以在设计时或在运行时设置 Timer 控件的 Interval 属性。使用 Interval 属性时,请记住:

Timer 控件的 Enabled 属性决定该控件是否对时间的推移做响应。将Enabled 设置为 False 会关闭 Timer 控件,设置为 True 则打开它。当 Timer 控件置为有效时,倒计时总是从其 Interval 属性的设置值开始。

创建 Timer 事件程序用以告诉 Visual Basic 在每次 Interval 到时该做什么。

Interval 属性示例

这个例子可以调整窗体切换颜色的速度。要尝试这个例子,请将代码粘贴到包含 Timer 控件、HScrollBar 控件(水平滚动条)和 PictureBox 控件的窗体的声明部分,然后按 F5 键并单击滚动条。

Private Sub Form_Load ()

Timer1.Interval = 900 ' 设置时间间隔。

HScroll1.Min = 100 ' 设置最小值。

HScroll1.Max = 900 ' 设置最大值。

End Sub

Private Sub HScroll1_Change ()

' 根据滚动条的数值设置时间间隔。

Timer1.Interval = 1000 - HScroll1.Value

End Sub

Private Sub Timer1_Timer ()

' 在红色和蓝色之间切换背景色。

If Picture1.BackColor = RGB(255, 0, 0) Then

Picture1.BackColor = RGB(0, 0, 255)

Else

Picture1.BackColor = RGB(255, 0, 0)

End If

End Sub

先设置计时器的 Enabled=false

然后在单击“开始”按钮的事件中设置计时器的 Enabled=true

然后在计时器的Timer事件中写移动标签的代码

if label1.Left+label1.Width >= 0 then

label1.Left=label1.Left-80 '修改80 可以改变移动的速度

else

label1.Left=this.Width

end if

再在单击“停止”按钮的事件里设置计时器的 Enabled=false

Private Sub Command1_Click() '开始

Timer1.Enabled = True

End Sub

Private Sub Command2_Click() '停止

Timer1.Enabled = False

End Sub

Private Sub Form_Load()

Label1.Caption = "欢迎学习Visual Basic"

Label1.AutoSize = True

Timer1.Interval = 100

Timer1.Enabled = False

End Sub

Private Sub Timer1_Timer()

Label1.Move IIf(Label1.Left <= Me.ScaleLeft - Label1.Width, Me.ScaleWidth, Label1.Left - 100)

End Sub

添加了timer空间,双击写你要timer控件执行的操作,然后再页面你想要触发timer控件的地方加上timer1.Start();就可以了

首先将Enabled在设计窗口中设计为true Interval是触发事件的频率

在事件timer1_Tick中写你想要重复操作的事件。

一个android Timer,为什么只执行了一次

一个android Timer,为什么只”相关的解决方案进行了整理,用户详细问题包括:

public void getPaisong() {

final Handler handler = new Handler() {

public void handleMessage(Message msg) {

switch (msg.what) {

case 1: {

// 初始化搜索模块,注册事件监听

mSearch = new MKSearch();

mSearch.init(app.mBMapMan, new MyMKSearchListener());

jiexi();

cou++;

Toast.makeText(

BMapApiDemoApp.mDemoApp.getApplicationContext(),

"执行了"+cou+"一次!", Toast.LENGTH_LONG).show();

}break;

}super.handleMessage(msg);

}};

TimerTask task = new TimerTask() {

public void run() {

Message message = new Message();

message.what = 1;

handler.sendMessage(message);

}};

timer = new Timer(true);

timer.schedule(task, 5000); // 延时1000ms后执行,1000ms执行一次

// timer.cancel(); //退出计时器

}我在oncreate方法里直接调用了getPaisong()方法,可是只显示cou=1,具体解决方案如下:

解决方案1:

好吧 原来是

timer.schedule(task,1000,,5000); // 延时1000ms后执行,1000ms执行一次

解决方案2:

呵,开始接触这个类的时候我也迷茫了一把

解决方案3:

要重复的话,就用repeate

解决方案4:

timer.schedule(task, 5000); 两个参数的schedule 就只是执行一次吧。

要用三个参数的schedule。

解决方案5:

我去,我也遇到这个问题。。。

android 怎么重复启动同一个timer

是的,因为你的timer启动后一直没有cancel();而且Timer对象没必要再去new了,你在OnClickListener事件里,只需要加入schedule方法即可执行,并且给定一个条件判断下调用cancel();

据我所知,好像一个Timer一旦被cancel之后就废了,只有重新构造一个才行。

timer.cancel改成wait试试

android怎么缩短toast的显示时间

toast一般要一个监听来激发 比如你有一个按钮 设置按钮的监听 在监听里吧toast做进去

Toast.makeText("当前的"Activity.this, "toast里面要显示的内容",0).show(); 至于你说的第一个问题不太明白