标签: chronometer

Android - 获取计时器小部件的时间

如何从计时器中获取时间?我试过getText,getFormat,getBase等,但没有一个可以工作.

示例代码段:

Chronometer t = (Chronometer)findViewById(R.id.toptime);
long time = SystemClock.elapsedRealtime()-t.getBase();
Log.d(null,"Was: "+time); //time is not the proper time for some reason - it is a random number between 0 and 50
t.setBase(SystemClock.elapsedRealtime());
t.start();
Run Code Online (Sandbox Code Playgroud)

time android view widget chronometer

45
推荐指数
2
解决办法
8万
查看次数

Android_Chronometer暂停

我想暂停计时器,然后在我点击按钮后我想继续发色计数...我搜索但是无法将相关功能与此相关..怎么办呢?

android chronometer

37
推荐指数
3
解决办法
2万
查看次数

天文台重置

我试图完全重启Chronometer,它不起作用.相反,它被暂停了.基本上我要做的是在计时器计数到10时做一些事情.完成后我们提示用户再试一次.在这种情况下,我们想要从1到10秒重做计数.但计时器从暂停时间开始,而不是从0开始.

这是代码:

_cutOfTime = 10; // constant
Run Code Online (Sandbox Code Playgroud)

每次按下按钮都可以 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!!: ");
                                 _watch.stop();
                                stopRecordWav();
                                launchPromptWithResults();
                            }
                            long sec = countUp % 60;

                            String asText = "" + sec;
                            _textView.setText("Recorded: " + asText);
                        }
                    });


            if (_watch != null)
            _watch.start();
} …
Run Code Online (Sandbox Code Playgroud)

android chronometer

17
推荐指数
1
解决办法
2万
查看次数

使用Android Chronometer显示毫秒数

我正在寻找一种方法让Android中的计时器(最好是1.6及以上)在计数时显示十分之一秒.

是否有可能做到这一点?如果没有,是否有一个免费的(最好是开源的)库也可以这样做?如果做不到的话,我会自己编写,但我宁愿使用别人的!

android chronometer

14
推荐指数
2
解决办法
2万
查看次数

计时器小部件ListView中不会更新计时器

我有一个显示计时器的应用程序小部件.定时器可以启动,停止或恢复.

在Android 8计时器上有时不打勾(50/50).一些用户在Android 7上抱怨这个问题,但我不能确定它是否是同一个问题.在安装了Android 6的Nexus 5上,一切运行良好.如果向下滚动列表视图(直到计时器不可见)并向上滚动 - 计时器开始计时.如果我再将一个Chronometer放在ListView上方并启动 - 那么天文台计时器就会很好

ActivitiesRemoteViewsFactory

public RemoteViews getViewAt(int position) {
...

    RemoteViews remoteViews = new RemoteViews(mContext.getPackageName(), getItemLayoutId());

    if (timeLog.getState() == TimeLog.TimeLogState.RUNNING) {          

        remoteViews.setChronometer(R.id.widget_timer,
                SystemClock.elapsedRealtime() - (duration * 1000 + System.currentTimeMillis() - timeLog.getStartDate().getTime()), null, true);
    } else {
        long timerValue = SystemClock.elapsedRealtime() - duration * 1000;
        remoteViews.setChronometer(R.id.widget_timer, timerValue, null, false);

    }

    return remoteViews;
Run Code Online (Sandbox Code Playgroud)

更新从AppWidgetProvider的onReceive方法发送

public void onReceive(Context context, Intent intent) {   
   AppWidgetManager widgetManager = AppWidgetManager.getInstance(ctx);
    ...
   widgetManager.notifyAppWidgetViewDataChanged(appWidgetIds, R.id.widget_activities_list);
}
Run Code Online (Sandbox Code Playgroud)

TargetSDK是25

更新 此问题也在主应用程序中重现.listView有问题,因为它在RecyclerView中运行良好.添加了在https://github.com/zaplitny/WidgetIssue上 …

android listview widget chronometer

12
推荐指数
1
解决办法
583
查看次数

在Android中创建计时器

我想知道如何在Android中实现一个简单的计时器,它带有一个启动和停止按钮,以HH显示数据:MM:SS:MsMs格式......我一直在搜索和搜索,我找到了一些课程在谷歌开发者,但他们没有举例,我迷路了...你能指导我一个教程/例子吗?我刚开始在Android :)任何帮助将非常感激.

implementation android chronometer

11
推荐指数
1
解决办法
3万
查看次数

如何从Date对象设置Android Chronometer基准时间?

从特定时间开始计时器我遇到了问题.有一个Date对象,我希望我的计时器从:

Date d = new Date(); //now, just for example
chronometer.setBase(d.getTime()); //long value of d
Log.d("Date: " , "d.getTime() time is [" + d.getTime() +"]");
Log.d("Chron: " , "chronometer.getBase() is [" + chronometer.getBase() +"]");
//let's print out elapsedRealtime from official sample
Log.d("Chron: " , "SystemClock.elapsedRealtime() is [" + SystemClock.elapsedRealtime() +"]");
Run Code Online (Sandbox Code Playgroud)

输出:

06-02 13:35:23.025: D/Date:(928): d.getTime() time is [1338644123032]
06-02 13:35:23.037: D/Chron:(928): chronometer.getBase() is [1338644123032]
06-02 13:35:23.037: D/Chron:(928): SystemClock.elapsedRealtime() is [11624388]
Run Code Online (Sandbox Code Playgroud)

实际上,为什么这个长时间值不同(11624388和1338644123032)?

当我从基座开始我的天文台时

chronometer.setBase(SystemClock.elapsedRealtime());
Run Code Online (Sandbox Code Playgroud)

- 它总是工作正常("00:00"和上升)

但是当我尝试设置过去日期的日期时(昨天):

chronometer.setBase(yesterday.getTime());
Run Code Online (Sandbox Code Playgroud)

- 它显示"00:0("并且每秒更新最新的字符")","*","/"和其他

您能告诉我如何将计时器基座设置为Date对象?

android chronometer

11
推荐指数
2
解决办法
7525
查看次数

Android:天文台作为持久秒表.如何设定开始时间?什么是天文台"基地"?

我确实有一个服务在后台运行.每当它开始时,我在内存中存储起始时间(以毫秒为单位):

startingTime = new Date().getTime();
Run Code Online (Sandbox Code Playgroud)

我想显示一个计时器,它在服务启动时开始计数,并且在用户按下按钮之前永远不会停止.我想让用户离开活动渲染计时器,做一些事情,然后返回.但想法是,当用户返回时,我不希望计时器再次进入0:00.Insted我希望它显示自服务启动以来的确切时间.

每次用户返回计时器活动时,我都可以计算elapsedTime:

elapsedTime =  new Date().getTime() - startingTime;
Run Code Online (Sandbox Code Playgroud)

问题是,我不知道如何告诉计时器从那个时候开始计数!

将其设置为计时器基座不起作用.有人可以解释一下究竟"基础"意味着什么或如何实现这一目标?

非常感谢!BYE

android chronometer

8
推荐指数
3
解决办法
4万
查看次数

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

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

android chronometer

8
推荐指数
2
解决办法
4363
查看次数

Android中的计时器支持库

如果有任何支持库函数可以setCountDown通过低于24的API支持计时器的功能吗?

android chronometer android-support-library

7
推荐指数
1
解决办法
516
查看次数