通知 RemoteViews 中的计时器从特定值开始计时

3

我正在尝试在新通知中启动秒表,但是从已暂停(经过的)时间开始(“经过的时间来自另一个秒表”),而不是从零开始

通知RemoteViews.class中的秒表启动baseChronometer.class中的启动基数不同,它有不同的计算方式

Notification notification = new 
NotificationCompat.Builder(getApplicationContext())
                        .setSmallIcon(R.mipmap.ic_launcher)
                        .setContentTitle(songName).build();
notification.contentView = simpleContentView;

我得到了 timeWhenPaused 的时间。

long timeWhenPaused = myChronometer.getBase() - SystemClock.elapsedRealtime();

然后创建计时器chronometer
notification.contentView.setChronometer(R.id.chronometer_recorder
                            , (SystemClock.elapsedRealtime() + timeWhenPaused)
                            , null
                            , true
                    );

从零开始

2个回答

2
我希望这可以帮助您,这是使用远程视图(在通知中)创建计时器的工作示例。
long startTime = SystemClock.elapsedRealtime();

Calendar endTime = Calendar.getInstance();  // time in future
         endTime.set(Calendar.HOUR_OF_DAY, YOUR_HOUR);
         endTime.set(Calendar.MINUTE, YOUR_MINUTE);
         endTime.set(Calendar.SECOND, 0);

Date now = new Date();
long elapsed = now.getTime() - endTime.getTimeInMillis();
long remainingTime = startTime - elapsed;

        remoteViews.setChronometerCountDown(R.id.chronometer, true);
        remoteViews.setChronometer(R.id.chronometer, remainingTime, ("%tH:%tM:%tS"), true);

picture of my notification


1
我尝试了许多计算方法,最终得到了这个。
long elapsedMillis = SystemClock.elapsedRealtime() - myChronometer.getBase();

那么

notification.contentView.setChronometer(R.id.chronometer_recorder_notification
                    ,(SystemClock.elapsedRealtime() - elapsedMillis ^5)
                    ,null
                    ,true
            );

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接