Articles of 计时器

如何检查计时器是否仍在运行?

我尝试在服务中发送短信。如果没有发送短信意味着我在一段时间后重新启动服务,为此我使用定时器。如果短信发送意味着我想停止定时器,为了停止定时器我使用定时器。取消(); 在此之前,我要检查计时器是否正在运行或不检查它。 int resultCode = getResultCode(); switch (resultCode) { case Activity.RESULT_OK: timer.cancel();//Here I want to check timer running or not break; case SmsManager.RESULT_ERROR_GENERIC_FAILURE: timer_run(); break; case SmsManager.RESULT_ERROR_NO_SERVICE: timer_run(); break; case SmsManager.RESULT_ERROR_NULL_PDU: timer_run(); break; case SmsManager.RESULT_ERROR_RADIO_OFF: timer_run(); break; } 定时器计划function public void timer_run(){ TimerTask hourlyTask = new TimerTask () { @Override public void run () { […]

android CountDownTimer – 最后onTick未调用 – 使用什么干净的解决方案?

沮丧的post…. 我偶然发现了许多人在这里报告的“CountDownTimer – 最后onTick not called”问题。 简单的演示显示问题 package com.example.gosh; import android.app.Activity; import android.os.Bundle; import android.os.CountDownTimer; import android.util.Log; public class CountDownTimerSucksActivity extends Activity { int iDontWantThis = 0; // choose 100 and it works yet … private static final String TAG = “CountDownTimerSucksActivity”; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); new MyCountDownTimer(10000 + iDontWantThis , […]

检查天文台表是否正在运行

android中的天文台如何检查天文钟是否正在运行或停止? 如果开始然后我想停止它,如果没有运行然后启动计时器。

如何在Android App中获取两个日期之间的时差?

我正在尝试实现一个时间计数器(从0开始计数),它基本上得到了保存的时间variables(startTime,它是在用户点击一个按钮后立即创建的)并减去当前时间(Calendar.getInstance()可能?这样结果就是两次之间的差异(HH:MM:SS)。 这个方法将在计时器的每个刻度上运行,以便文本视图每秒更新一次,有效地创建我的计时器。 现在,我采用这条迂回路线,因为这是我能够find的唯一方法,即使应用程序被杀,也可以节省时间。 这是因为startTimevariables在创建后立即保存到SharedPreferences,并且在每个Tick中,系统只需查找startTime和当前时间之间的差异即可在现场计算我的计时器。 现在,我已经尝试将我的startTime作为Calendarvariables并初始化为: Calendar startTime = Calendar.getInstance(); 接着 elapsedTime = startTime – Calendar.getInstance(); 但显然,这不起作用。 在一个用C#编写的类似项目中,我能够使用它,虽然使用了DateTimevariables……在Android中有这样的方法吗? 如果这太复杂了,是否有更好的方法来保存我的计时器进度? 谢谢,麻烦您了!

每隔几个小时运行一次任务

我有一个方法,即使用户没有重新打开应用程序,我也需要每隔几个小时运行一次。 什么是最好的方式? 我应该使用Timer类还是Alarm Manager? 谢谢!

计时器不会停在android中

在我的应用程序中,我想显示一个停止计时器手表。 当我在谷歌搜索时,我在开发者网站上find了一个名为Chronometer的选项。 它看起来就像一个停止计时器手表。 当我单击开始按钮时,我希望计时器开始,当我单击暂停按钮时,必须暂停计时器,一旦我点击它,它必须从它停止时开始。 但是在这个天文台里它从0开始,当我在1分10秒点击暂停时它会暂停。 当我再次点击再次启动5分钟后,计时器从6分钟开始计时10秒,即使暂停计时器正在运行,如何停止计时并在停止时恢复计时。 以下是我的天文台代码 Start = (Button)findViewById(R.id.widget306); Start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { chronometer.start(); } }); Stop = (Button)findViewById(R.id.widget307); Stop.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { chronometer.stop(); } }); }

如何在Flutter App中处理onPause / onResume?

我是Dart / Flutter的新手,想建立一个简单的应用程序,其中LinearProgressBar每秒都会更新一次。 如果没有太多的实际代码,我有以下设置工作。 基于传递时间计算进度的函数。 显示进度的LinearProgressBar。 定期计时器每秒重新计算进度并更新进度条。 我每次都调试’tick’,重新计算完成。 一切都按预期工作,但有一个例外。 当我在Android设备的后台移动应用程序时,’tick’会继续打印。 在原生Android上,当触发’onPause’事件时,我会取消我的定期计时器。 Flutter有类似的东西吗? 我能find的只是’initState’和’dispose’。 但是,在将应用程序移动到背景时,不会调用Dispose。 我不希望计时器在后台继续滴答作响。 在我的研究中,我发现这个Stack Overflow问题onresume-and-onpause-for-widgets-on-flutter 。 它的答案建议使用TickerProviderStateMixin 。 我用下面的方法。 class _BarItemState extends State with SingleTickerProviderStateMixin { Ticker ticker; num progress = 1.0; @override void initState() { super.initState(); ticker = createTicker((duration) => setState(() { debugPrint(‘tick’); progress = duration.inSeconds / 30; })) ..start(); } // […]

Android – 希望应用程序每秒执行一次任务

我正在尝试让我的倒计时应用程序执行其更新我当前时间和日期TextView的function,并每秒触发其MyOnItemSelectedListener,以便应用程序动态倒计时,而不是仅在启动onCreate时。 如果有一个更有效的方法然后快速启动MyOnItemSelectedListener我会很感激批评。 public class TheCount extends Activity { TextView description=null; TextView dates=null; TextView times=null; TextView output=null; TextView cDateDisplay=null; TextView cTimeDisplay=null; private int mYear; private int mMonth; private int mDay; private int mHour; private int mMinute; private int mSecond; CountdownHelper helper=null; String countdownId=null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.thecount); helper=new CountdownHelper(this); cTimeDisplay = (TextView)findViewById(R.id.lblCurTime); […]

如何在运行时更改android中睡眠/计时器线程的延迟?

我试图做的是每次计数器变为5的倍数时减少定时器延迟。但是,一旦代码进入if块,它就会停止递增计时器。 我无法理解发生了什么。 这是代码 thread=new Thread(){ public void run(){ try{ if(count%5==0) timre–; else{ //do nothing } //*******PROGRESS UPDATE********// for(t=0;t<=100;t++) { sleep((timre) / 100); progress.setProgress(t); t += 1; } //****PROGRESS UPDATE OVER****// } catch (InterruptedException e) { e.printStackTrace(); } finally { finish(); } }//run ends };//thread ends thread.start();//timer starts

如何在android中显示计时器

我想在TextView中以类似[19:59]的格式显示计时器。所以当我点击开始按钮时,计时器将显示如下,例如,我想设置20分钟,它将显示为[19] :58] [19:87]。谁能提出一些想法或示例代码?