2

達成したいこと:

ユーザーの非アクティブ状態が 3 分間続いた後、新しいアクティビティを表示したいと考えています。

リサーチ:

この問題について Stackoverflow を調べたところ、バックグラウンド スレッドを使用してこれを行う方法、最後のタッチを登録するベース アクティビティを作成する方法などのヒントが見つかりました。

問題:

20 以上のアクティビティがある場合、基本アクティビティからすべてのアクティビティを拡張したくありません。これは、新しいアクティビティを作成するたびに、この基本アクティビティを拡張する必要があることを意味します。これにより、アクティビティが他の基本アクティビティから既に拡張されている場合、混乱が生じる可能性があります。クラス Application を使用してこれを処理したいので、アクティビティは同じままです。

すでに作成されたアクティビティに触れずにこれを達成するにはどうすればよいですか? onUserInteraction()または、Activity の、またはonPause()、またはその他のメソッドを常に処理する必要がありますか?

参考文献:

アプリケーションのアイドル時間

Androidでアプリケーションがアイドル状態であることを検出する

Androidでユーザーの非アクティブを検出する方法

4

1 に答える 1

0

残念ながら、開いているアクティビティに関する情報をどこかで収集する必要があります (一部のコレクションかもしれません)。このコレクションを Application クラスに保存し、アクティビティの開始と終了を報告するいくつかのメソッドを記述できます。Activity close メソッドでは、コレクションが空かどうかを確認してから、Handler または Timer (新しいアクティビティを開く) で遅延イベントを発生させ、Activity open メソッドでは、この遅延タスクを無効にすることができます。

これは、目標を達成するための非常に一般的な方法です。

于 2015-09-09T10:09:40.490 に答える