【问题标题】:Measure android activity running time(staying activity on screen)测量android活动运行时间(在屏幕上停留活动)
【发布时间】:2016-02-03 07:09:22
【问题描述】:

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

我知道使用System.currentTimeMillis

但我只想要 API 或 SDK 函数来做到这一点。

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

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

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

【问题讨论】:

    标签: android android-activity sdk


    【解决方案1】:

    您可以使用 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 提供事件跟踪功能来跟踪 Activity 运行时间和使用情况。

    【讨论】:

      【解决方案2】:

      您可以在下面的代码中执行类似的操作,通过计算暂停和恢复时间之间的差异来计算总前台时间。

      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();
      
      
          }
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多