Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何找到我的应用程序对用户可见的时间?_Android - Fatal编程技术网

Android 如何找到我的应用程序对用户可见的时间?

Android 如何找到我的应用程序对用户可见的时间?,android,Android,我需要找到我的应用程序在屏幕上的显示时间。 但我不想计算应用程序在后台运行的时间。 我尝试了生命周期方法,但对我无效。 有什么有效的方法可以确定应用程序在屏幕上的显示时间吗?也许您可以尝试以下方法: 当用户启动应用程序使其可见时,在onResume()中开始测量时间,并在onPause()中停止测量时间。->您已暂停并离开屏幕或被用户自己停止 此外,您还可以在系统中加入此功能,以检查屏幕是否实际处于打开状态,如果这样更适合您,请检查下面的链接……但当您的应用程序位于后台时,已调用onPause

我需要找到我的应用程序在屏幕上的显示时间。
但我不想计算应用程序在后台运行的时间。
我尝试了生命周期方法,但对我无效。

有什么有效的方法可以确定应用程序在屏幕上的显示时间吗?

也许您可以尝试以下方法:

当用户启动应用程序使其可见时,在onResume()中开始测量时间,并在onPause()中停止测量时间。->您已暂停并离开屏幕或被用户自己停止


此外,您还可以在系统中加入此功能,以检查屏幕是否实际处于打开状态,如果这样更适合您,请检查下面的链接……但当您的应用程序位于后台时,已调用onPause方法,因此这是一种非常有效的方法。


也许你可以试试这样的东西:

当用户启动应用程序使其可见时,在onResume()中开始测量时间,并在onPause()中停止测量时间。->您已暂停并离开屏幕或被用户自己停止


此外,您还可以在系统中加入此功能,以检查屏幕是否实际处于打开状态,如果这样更适合您,请检查下面的链接……但当您的应用程序位于后台时,已调用onPause方法,因此这是一种非常有效的方法。


掌握活动放在前台的时间和放在后台的时间。计算开始时间和结束时间的差值,就可以得到用户花费的时间

例如:

@Override
protected void onStart() {
    // TODO Auto-generated method stub
    super.onStart();
    start = 0;
    start = System.currentTimeMillis();
}
@Override
protected void onStop() {
    // TODO Auto-generated method stub
    super.onStop();

    end = System.currentTimeMillis();
    Log.w("activity time ", "" + ((end - start))*0.001); //convert to seconds
}

p.S.声明<代码>长期开始、结束全局

获取活动放在前台的时间和放在后台的时间。计算开始时间和结束时间的差值,就可以得到用户花费的时间

例如:

@Override
protected void onStart() {
    // TODO Auto-generated method stub
    super.onStart();
    start = 0;
    start = System.currentTimeMillis();
}
@Override
protected void onStop() {
    // TODO Auto-generated method stub
    super.onStop();

    end = System.currentTimeMillis();
    Log.w("activity time ", "" + ((end - start))*0.001); //convert to seconds
}

p.S.声明<代码>长期开始、结束全局

要简化此答案,请使用onResume和onPause。要简化此答案,请使用onResume和onPause