Articles of 计时器

计时器在背景中

我正在为大学工作开发Android应用程序。 在这项工作中,我想用计时器创建一个后台服务,当我关闭应用程序时,计时器仍在运行。 当我打开应用程序时,我可以看到自从我开始服务以来的时间。 好吧,我的问题是当我关闭应用程序时,后台计时器停止而不是增加更多。 你能帮我吗? 非常感谢 我的发射器课 import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { private Button startButton; private Button pauseButton; private TextView timerValue; Intent intent; long timeSwapBuff = 0L; long updatedTime = 0L; @Override public void […]

如何暂停和恢复TimerTask / Timer

我在我的Android应用程序中有一个animation,闪烁TextView不同的颜色。 我使用了TimerTask,Timer和Runnable方法来实现它。 我需要做的是在用户在onPause()期间离开应用程序时停止线程,并在用户返回onResume()中的应用程序时恢复线程。 以下是我实现的代码,但它不起作用(onPause()和onResume()片段),我不明白为什么。 我已经阅读了其他类似问题的其他post,但他们没有帮我弄清楚在我的情况下该怎么做。 我已经读过TimerTasks已经过时了,我应该使用ExecutorService方法; 我不清楚如何实现这个function。 …timerStep5 = new TimerTask() { @Override public void run() { runOnUiThread(new Runnable() { @Override public void run() { if (b5) { cashButton2SignalText.setBackgroundColor(Color.RED); cashButton2SignalText.setTextColor(Color.WHITE); b5=false; } else { cashButton2SignalText.setBackgroundColor(Color.WHITE); cashButton2SignalText.setTextColor(Color.RED); b5=true; } } }); } }; timer5.schedule(timerStep5,250,250); } public void onPause(){ super.onPause(); timerStep5.cancel(); } public void onResume(){ super.onResume(); timerStep5.run(); […]

onPause / onResume活动问题

我有一个小的测试应用程序,我正在使用它有一个计时器,将文本视图更新为从100到0的倒计时。这很好,但现在我试图暂停应用程序,如果用户按下手机上的后退按钮然后从他们重新打开应用程序时停止的位置重新启动计时器。 这是我正在使用的代码: @Override public void onPause() { if(this._timer_time_remaining > 0) { this.timer.cancel(); } super.onPause(); Log.v(“Pausing”, String.format(“Pausing with %d”, this._timer_time_remaining)); } @Override public void onResume() { Log.v(“Resuming”, String.format(“Resuming with %d”, this._timer_time_remaining)); if(this._timer_time_remaining > 0) { start_timer(this._timer_time_remaining); } super.onResume(); } start_timer()方法创建一个CountDownTimer,它更新onTick方法中的textview并更新this._timer_time_remaining intvariables。 CountDownTimer和_timer_time_remaining都在类级别声明,如下所示: private CountDownTimer timer; private int _timer_time_remaining; 从Log.v()打印我看到_timer_time_remainingvariables在调用onPause时存储了正确的秒数,但是在onResume启动时它被设置回0。 为什么variables会被重置? 我认为应用程序将继续在后台运行相同的值。 我错过了什么吗? 这都是在扩展Activity的类中声明的。 提前致谢! 注意:编辑清理代码复制

Android – 测量两次按钮点击之间的时间

我有一个名为Check In的按钮。 我的目标是点击更改文本并开始计算时间。 计时器必须在下次点击时停止。 它应该给出两次按钮点击之间的时间。

在Android中5秒后执行function

我是Android开发的新手,现在我的启动器活动只显示5秒,之后我想检查用户是否登录或没有function并执行操作。 这是我的代码。 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); exactPreferences = getSharedPreferences(“ExactPreference”,MODE_PRIVATE); setContentView(R.layout.activity_landing_page); session = exactPreferences.getString(Model.getSingleton().SHARED_SESSION_ID,null); Log.i(“Session Id”,session); displayData(); // I want to perform this function after 5 seconds. } private void displayData() { if(session.equals(“”)){ Intent loginIntent = new Intent(LandingPage.this, LoginActivity.class); startActivity(loginIntent); Log.i(“User Logged In”, “False”); } else { Intent objIntent = new Intent(LandingPage.this, IndexPageActivity.class); […]

Android:如何在TextView中显示更新时钟

有一个我想在TextView中显示的时钟。 我原本以为有一些很好的function可以做到这一点,但我找不到任何东西。 我最终实现了自己使用Handler的方式。 我问的是,是否有更好(更有效)的方式来显示实时更新时钟? private Runnable mUpdateClockTask = new Runnable() { public void run() { setTime(); mClockHandler.postDelayed(this, 1000); } }; 这是我的处理程序,它每秒运行一次,然后我的设置时间和日期函数在下面 TextView mClockView; public void setTime() { Calendar cal = Calendar.getInstance(); int minutes = cal.get(Calendar.MINUTE); if (DateFormat.is24HourFormat(this)) { int hours = cal.get(Calendar.HOUR_OF_DAY); mClockView.setText((hours < 10 ? "0" + hours : hours) + ":" + (minutes […]

天文台重置

我试图完全重启Chronometer,它不起作用。 相反,它被暂停了。 基本上我要做的是在计时器计数到10时做一些事情。完成后我们提示用户再试一次。 在这种情况下,我们想要从1到10秒重做计数。 但计时器从暂停时间开始,而不是从0开始。 这是代码: _cutOfTime = 10; // constant 每次按下按钮都会执行startRecording() 它应该始终启动计时器而不是停止/暂停它,但它恰恰相反 protected void startRecording(){ this._watch = (Chronometer) findViewById(R.id.chrono); if (this._watch != null) this._watch.setOnChronometerTickListener(new OnChronometerTickListener() { @Override public void onChronometerTick(Chronometer chronometer) { long countUp = (SystemClock.elapsedRealtime() – chronometer.getBase()) / 1000; Log.i(_tag, “time now: ” + String.valueOf(countUp)); if(countUp > _cutOfTime) { Log.i(_tag, “stop recording!!: “); […]

你如何使用TimerTask来运行一个线程?

我很难在Android上findTimerTask函数的文档。 我需要使用TimerTask间歇运行一个线程,但不知道如何解决这个问题。 任何建议或例子将不胜感激。

Android:从计时器线程访问UI元素

public Button stb; static int cnt=0; public ArrayList Butgrp1 = new ArrayList(); Timer myt; TimerTask t; stb.setOnClickListener(new OnClickListener() { public void onClick(View v) { myt.mschedule(new TimerTask() { @Override public void run() { // TODO Auto-generated method stub System.out.println(“Entering run”); Handler h=new Handler(); h.post(new Runnable() { public void run() { // TODO Auto-generated method stub runOnUiThread(new […]

Android:简单的时间计数器

我有一个简单的程序,一个TextView和两个按钮:Button1和Button2。 单击按钮1将启动计数器,每1秒增加1并在TextView上显示结果; 按钮2上的叮当声将使其停止。 这是我的Button1代码的一部分。 但它不起作用。 Timer T=new Timer(); T.scheduleAtFixedRate(new TimerTask() { @Override public void run() { myTextView.setText(“count=”+count); count++; } }, 1000, 1000); 我知道使用Thread有一些类似的问题,但似乎他们没有提到停止计数器。 任何建议都非常感谢。 添加: 您好,我刚从一个更大的程序中缩短了我的代码,但它仍然崩溃了: package com.example.hello; import java.util.Timer; import java.util.TimerTask; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.widget.TextView; public class MainActivity extends Activity { TextView myTextView; int count=0; Timer T; @Override public void […]