测量android活动运行时间(在屏幕上停留活动)

时间:2016-02-03 07:09:22

标签: android android-activity sdk

现在我开发了android应用程序,我需要活动运行时间! 从onCreate()onPause()onStop()

我知道要使用System.currentTimeMillis

但我想要API或SDK功能来做到这一点。

可能是当任务被改为onPause()或onStop()时,android有活动运行时间的信息!(或转发活动)。

所以我使用一个代码或函数,我会测量活动的运行时间!(在屏幕上保持活动!)

那么API或函数测量活动的运行时间是什么?

2 个答案:

答案 0 :(得分:0)

您可以使用Google分析或任何第三方分析(例如:Flurry,InMobi等)工具来获取活动的运行时间。使用此功能,您可以跟踪用户的活动状态,并且主要使用应用程序内部的功能。

对于Google Analytics集成,请参阅以下链接。

http://developer.android.com/distribute/analyze/start.html

有关整合flurry分析的信息,请参阅以下链接。

https://developer.yahoo.com/flurry/docs/analytics/gettingstarted/android/

Google Analytics和Flurry Analytics提供事件跟踪功能,以跟踪活动的运行时间和使用情况。

答案 1 :(得分:0)

您可以在下面执行以下操作:通过计算暂停和恢复时间之间的差异来计算总前景时间。

public class MainActivity extends Activity {

    long pauseTime = 0, resumeTime = 0;

    SharedPreferences preference;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        preference = getSharedPreferences("TimeWrap", Context.MODE_PRIVATE);

    }

    @Override
    protected void onPause() {
        super.onPause();

        pauseTime = System.currentTimeMillis();

        SharedPreferences.Editor editor = preference.edit();

        long totalForgroundTime = preference.getLong("TotalForegroundTime", 0) + (pauseTime-resumeTime);

        editor.putLong("TotalForegroundTime", totalForgroundTime);

        editor.commit();

        ((TextView) findViewById(R.id.textView1)).setText(
                                                     String.valueOf(TimeUnit.SECONDS.convert(totalForgroundTime, TimeUnit.MILLISECONDS)) + " Seconds");

}

    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();

         //update foreground time
        resumeTime = System.currentTimeMillis();


    }

}