Android アプリケーションを開発しました。ユーザーのログイン状態を維持するために、ユーザー名とパスワードを拡張するクラスに保存していますApplication
。ユーザーがログアウトせずにアプリケーションを終了すると、アプリケーション コンテキストに保存されているユーザー資格情報 (ユーザー名とパスワード) を使用するバックグラウンド サービスが開始されます。
これは私にとって非常にうまくいきました。しかし今、私は自分の携帯電話 (Samsung galaxy Ace) に facebook をインストールしました。37 MB の RAM を占有するサービスがあります。アプリケーションのバックグラウンド サービスを実行すると、ゲームをプレイしているとき、または画面をロックしているとき (ユーザー名とパスワードが null になることもあります) で、アプリケーション レベルの変数が強制終了されます。
何が起こっている?ユーザーのログイン状態を維持するには、他にどのような方法がありますか? ユーザー名/パスワードを保存するためにsqliteデータベースを使用したくありません。テーブルの値を簡単に確認できます。
この facebook を実行していても、まだ 38 MB の RAM を使用できることに
注意してください。
私のアプリは 544kb のメモリしか使用しません。
EDIT1
これは驚くかもしれませんが、コードに変更を加えていません。しかし今では、アプリケーション変数 (ユーザー名とパスワード) は、3 つまたは 4 つのアプリケーションを開いた場合でも存続します。上記の質問でApplication
、画面をロックするとすぐに vairables が null になると言いました。しかし今では、ゲームをプレイしているときでも持続しているようです (別のアプリケーションを開いて!)。Application
したがって、変数を殺すのはメモリの制約ではないことは明らかです。
これの理由は何ですか?アプリケーション レベル変数の強制終了を決定するものは何ですか?