2012-03-14 11 views
0

私はユーザーがログインできるアプリケーションを持っています。ログインは継続する必要があります。私が今行うのは、アクティビティisFinishing()かどうかをonPauseでテストすることです。そうでない場合は、ユーザーがアプリを離れることを意味する(または画面が薄暗くなったり、電話がかかっているなど)。 15分以内に復帰しなければ、ユーザーをログアウトさせたい。 postDelayed(...、15 * 60)を実行するのは大丈夫ですか?これはバックグラウンドで実行されますか?ユーザーをログアウトするためにネットワークコールを行うことはできますか?これが実際にどうやって確実に行われるのでしょうか?アプリが15分以内に殺される場合は、ユーザーをログアウトするフックがありますか?Androidハンドラーの背景

+0

私は、actitiyが一時停止するとハンドラ/ルーパーが実行され続けるかどうかわかりません。私はそのWeb接続部分を、アクティビティのライフサイクルに縛られていないサービスに移動します。 – zapl

答えて

1

であなたのログアウトコードを入れて破棄されるたびに、アプリケーションのログアウトを持っているのであれば、私はそれが放送受信機でAlarmManagerを組み合わせることが可能だと思いますそれによって生成されたインテントをキャプチャします。 このリンクは役に立つかもしれません: http://www.dotkam.com/2011/01/10/android-prefer-alarms-and-intent-receivers-to-services/

1

15分でアプリケーションが強制終了される可能性があります。しかし、おそらくデバイスの仕様、アンドロイドのバージョン、実行中のアプリの量、実行中のアプリなどによって変わる可能性があります。これらの変数のために、私はあなたのpostDelayedに頼るだけでは十分ではないと思います。あなたのアプリケーションは起動時にログアウトコードを実行します。

あなたが望むすべての活動はちょうどあなたの活動のonDestroy()メソッド

+0

このコードは、アプリが強制終了されても実行されますか? –

+0

onDestroy()?はい。これは、あなたのコードやシステムの中でそれをやっていても、あなたのアプリが破壊されたときにいつでも起こります。 Androidアクティビティのライフサイクルについては、こちら[こちら](http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle)をご覧ください。それはあなたにこれをよく扱う助けとなり、全体として、知っていると非常に便利です – dymmeh