0

アプリがフォアグラウンド アクティビティで実行されている間にかかった時間を計算したいのですが、

たとえば、Android で fb アプリケーションを開いた場合、アプリケーションを開いた時刻とアプリケーションを閉じた時刻を知ることができますか?

バックグラウンドサービスではなく、フロントで実行中のアプリの時間を知りたいです。

ありがとう。

4

1 に答える 1

0

残念ながら、これを Android で行うのは少し難しいです。一般的に、これはアイデアです:

  • すべてのアクティビティの onResume() は、そのアクティビティがユーザーの前に表示されたときに 1 回呼び出されます。
  • すべてのアクティビティの onPause() は、そのアクティビティが消えるときに 1 回呼び出されます。

私がアプリで行うことは次のとおりです。

  • アプリケーション内のすべてのアクティビティが GenericActivity のサブクラスになります
  • その GenericActivity は 2 つの配列を保持openArrayし、closeArray
  • onResume() が呼び出されるたびに、getCurrentTimeMillisプッシュされますopenArray
  • onPause() が呼び出されるたびに、getCurrentTimeMillisプッシュされますcloseArray
  • openArraycloseArrayが同じ数の要素を持っているときはいつでも、それはアプリが閉じられたことを意味します。openArrayの最後の要素からの最初の要素を引きcloseArrayます。これにより、アプリケーションがユーザーの前で開いていたミリ秒数が得られます。

長々とした回答で申し訳ありません。これに意味があるかどうか教えてください。

于 2013-08-04T02:13:08.383 に答える