で仕上げされている場合、あなたはそれがチェックかもしれない。また
@Override
protected void onPause()
super.onPause();
}
してみてくださいアクティビティはまだアクティビティスタック上にあり、バックボタンと同様に、通常は削除されます。 ActivityManager
がスタックからアクティビティを削除することを決定した場合、通常は一定の時間が経過するかリソースが必要な場合は、onDestory
が呼び出され、フィールドがリセットされます。
すべての情報がわからないので、私は確かに言うことはできませんが、あなたが家を押すと(coder_For_Life22によって提案されたようにonStart
に)ログインしている状態のユーザーを削除すると、おそらく不必要にユーザーが再びログインしなければならないアクティビティに戻り、クライアント側のセッション管理がさらに複雑になります。
セッション管理の方法は、サーバー側のセッション管理のようなものがない限り、とにかく疑わしいと思われます。たとえば、セッションがアクティブでない場合、データベースフィールドはリセットされます。
UPDATE
私はそれがActivityManager.getRunningTasks()
またはActivityManager.getRunningAppProcesses()
を使用して、アプリがそれらの間にあるかどうかをチェックされることができるかもしれないと考えることができる唯一の方法。提案したようにあなたのアプリを殺すと、あなたのアプリはそれらの中にいないので、あなたは知っている。別のバックグラウンドサービスを実行する必要がある場合(可能であれば、getSystemService(ACTIVITY_SERVICE)
を呼び出してActivityManager
を取得する必要がある)、非常に複雑な解決策のように思えます。適切な処置を実行してください。
このようにアプリを終了させると、アクティビティのライフサイクルが無視され、シャットダウンを実行できるアクティビティが発生しなくなります。
サーバ側の非アクティブをチェックしてこのようにフィールドをリセットすると、人々は頻繁にこのようなアプリを殺すことはなく、誰かにすぐに電話を渡す可能性は低いようですそれ以外の人は悪意のある情報にアクセスすることができます。
データにこのようなセキュリティが必要な場合は、セキュリティモデルを再考する必要があります。
このスレッドはあなたに役立ちます。必要に応じて、AFAIK dalvikがあなたのアプリを閉鎖します。ここでは、これに関するダイカッションとのSOのリンクです。 http://stackoverflow.com/questions/5279292/application-close-event-in-android – kosa