long startTime
long duration
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
startTime = SystemClock.uptimeMillis();
}
@Override
public void onBackPressed() {
duartion = SystemClock.uptimeMillis() - startTime;
//Duration you get in MS
once you are done call
super.onBackPressed();//finish the activity
}
public void printDifference(Date startDate, Date endDate){
//milliseconds
long different = endDate.getTime() - startDate.getTime();
System.out.println("startDate : " + startDate);
System.out.println("endDate : "+ endDate);
System.out.println("different : " + different);
long secondsInMilli = 1000;
long minutesInMilli = secondsInMilli * 60;
long hoursInMilli = minutesInMilli * 60;
long daysInMilli = hoursInMilli * 24;
//long elapsedDays = different / daysInMilli;
//different = different % daysInMilli;
long elapsedHours = different / hoursInMilli;
different = different % hoursInMilli;
long elapsedMinutes = different / minutesInMilli;
different = different % minutesInMilli;
long elapsedSeconds = different / secondsInMilli;
System.out.printf(
"%d hours, %d minutes, %d seconds%n",
elapsedHours, elapsedMinutes, elapsedSeconds);
}
# 1 楼答案
你可以这样做
# 2 楼答案
下面是一个不使用java的工作代码。时间LocalDateTime 如果您想使用它,可以进行必要的更改
您可以使用共享首选项在活动A中节省时间。
节省时间:
用这个来获得时间:
现在有两种解决方案可以继续:
将计时器设置为服务,它将在后台继续运行并不断更新时间
从SharedReferences检索数据,并在每次需要显示值时计算差异
根据要显示此数据的次数选择该选项
计算活动B中的差异:
方法:在此活动中也使用相同的getCurrentTimeDate