【发布时间】:2015-07-09 18:00:14
【问题描述】:
有什么方法可以获取活动从a变为b的时间
活动 A
{
意图 i = new Intent(A.this,B.class);
startActivity(i);
}
在我的应用中,打开活动时会出现延迟。我做了一些更改,现在我想检查活动转换的时间。
【问题讨论】:
标签: android android-intent android-activity oncreate
有什么方法可以获取活动从a变为b的时间
活动 A
{
意图 i = new Intent(A.this,B.class);
startActivity(i);
}
在我的应用中,打开活动时会出现延迟。我做了一些更改,现在我想检查活动转换的时间。
【问题讨论】:
标签: android android-intent android-activity oncreate
或者,使用 Debug.threadCpuTimeNanos() 但请确保您测量在同一线程中传递的时间,因为如果您尝试在多线程环境中执行此操作,这不会为您提供可靠的估计。在您的情况下,您在 UI 线程上进行测量,因此此方法也适用于您。 但是请注意,此方法侧重于时间执行,例如:
long startTime = Debug.threadCpuTimeNanos();
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
long duration = Debug.threadCpuTimeNanos() - startTime;
Log.i(TAG, "Duration: " + duration + " nanoseconds");
根据设备的不同,logcat 打印大约 80 000 000 纳秒 ~ 80 微秒。
【讨论】:
使用:
Calendar c = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("dd:MMMM:yyyy HH:mm:ss a");
String strDate = sdf.format(c.getTime());
获取当前时间/日期
startActivity(i); 之后以获取活动应该开始的时间。onCreate() 以查看实际创建 Activity 的时间。编辑
要显示,您可以登录 strDate
希望这会有所帮助;)
【讨论】: