2012-03-22 10 views
0

私のアプリケーション用のセッションマネージャを実装しています。アクティビティが再開されるたびに、セッションがアクティブかどうかがチェックされます。そうであれば、活動が開始され、そうでなければ、ユーザーを認証する別の活動が表示されます。アクティビティーが一時停止されると、セッション・マネージャーに現在の時刻が設定されます。セッションは、実行中のアクティビティがあるときにアクティブになるか、またはポーズで最後に設定されたタイムスタンプがx分より古いことはありません。Android:ユーザーによって日付と時刻の設定が変更された場合にサービスを開始

これに伴う問題は、ユーザーが時間設定を変更した場合、セッションが再びアクティブに見えることを、タイムスタンプの一部に起因することが可能であることです。

は、私は(私はこのイベントを記述した意図がある知っている)とのセッションをリセットした日付と時刻の設定が変更されたときに開始されるサービスでこれを解決したいです。セッションマネージャは、プロセスが終了したときに状態を失う静的なクラスになるため、アプリケーションがまだ実行中であれば実行する必要があります。

はどうやってサービスをshuch作成することができますか?

+0

ヴィンセント、この多分役に立つ参照:[アンドロイドに日付と時刻の変更リスナーを](http://stackoverflow.com/questions/9822713/android-start-service-when-date-and-time-setting-is-変更されたユーザー) –

+0

ありがとう、私はすでにそれを読んだが、それは非アクティブな質問のように見え、私はさらなる情報が必要です。私は複数の活動をしている場合、その解決策(または他のもの)をどのように使用するかを知る必要があります。 – Vincent

+0

今私は質問がかなり無意味であることを見る - とにかく、リンクに感謝! – Vincent

答えて

1

あなたは、このためのサービスを必要はありません。あなたは(私はそれがあなたのセッションに影響を与える場合は不確実だとして、そしておそらくACTION_TIMEZONE_CHANGEDACTION_TIME_CHANGEDのマニフェストでBroadcastReceiverを実装することができるはずです。 onReceive()で、セッションがあるかどうかを確認してください。そうしないと、ユーザーがアプリケーションが実行されていない時間が変更され、OKです。セッションがある場合は、この時点で必要な手順をすべて取ることができます(セッションを無効にするなど)。

+0

アクティビティにonRecieve()が実装されていますか?私は複数のアクティビティを持っていて、どのセッションがアクティブになっていてもセッションをリセットする必要があります。だからこそ、私はサービスが充実していると思っています。私はグラフィカルな活動は必要なく、素早い関数呼び出ししか必要としません。 – Vincent

+0

@Vincent: "onRecieve()はアクティビティに実装されていますか?" - いいえ。 'onReceive()'は 'BroadcastReceiver'で実装するメソッドです。だから、私はサービスが充分なものになると思ったから、グラフィカルな活動は必要なく、素早く機能するだけだ」 - あなたが** BroadcastReceiver **をまだ必要としていることを除けば、あなたがこれらの出来事について知る唯一の方法は放送の 'Intent'経由であるからです。したがって、サービスは必要ありません。 – CommonsWare

+0

まあ、私は放送受信者の性質と目的を本当に認識していませんでした。私は今、開発者ガイドの該当するページを読んでいます。私はこれがまさに私が必要としているものだと思っています。そして、あなたの患者の指導に感謝します。 – Vincent

関連する問題