11

時間などを含むアプリでのユーザーアクティビティを追跡するアプリがあります。ユーザーがアプリを開いた場合、セッションが開始され、このアプリのユーザーまでセッションが続行され、複数のアクティビティに切り替えることができます。その間、彼は別のアプリに切り替えます。彼のセッション ログは停止し、ファイルに書き留める必要があります。

私が試したこと

1 つの基本アクティビティを作成し、カウンターがゼロの場合は再開イベントでセッションを開始し、カウンターをインクリメントし、停止イベントでカウンターをデクリメントし、カウンターがゼロの場合はセッションを停止します

ただし、ユーザーが別のアプリに切り替えても Android がアクティビティを停止しないため、これは追跡の実際の問題を計算しません。

そのようなことを達成する方法はありますか。

追加:

アプリのアクティビティが画面上でアクティブかどうかを取得できれば、イベントを使用してセッションを開始または終了できます。

4

6 に答える 6

2

以下のように BaseActivity からすべてのアクティビティを拡張します。これは、onPause および onResume メソッドが、Activity が電話画面に表示されるか、電話画面から離れるたびに呼び出されることが保証されているため、最適なオプションです。

class BaseActivity extends Activity {


    @Override
    protected void onResume() {
        super.onResume();
        // Start Logging
    }

    @Override
    protected void onPause() {
        super.onPause();
        // End Logging
    }
}
于 2013-10-02T12:30:13.103 に答える
1

Android のアクティビティのライフサイクルを調べる必要があります。

必要なものは-こちらonPauseのドキュメントを参照してください

また、複数のアクティビティを切り替えても onPause が発生するため、別の画面に移動するために一時停止しているときを追跡する必要があることにも言及します。

于 2013-10-02T10:31:42.870 に答える