私はマルチスレッドアンドロイドアプリケーションを持っています。私のアプリケーションが行うことの1つは、Webサービスを介してサーバー上のデータベースにさまざまなデータを保存することです。私は物事がサーバーに正しく保存されていない理由を把握しようとしていました。ログファイルの1つで、アプリケーションオブジェクトonCreate()メソッドとコンストラクタがサーバーに送られる要求の途中で呼び出されました。これらの要求はバックグラウンドにあり、インテントサービスを介して送信されます。アプリケーションの実行中にアプリケーションオブジェクトのonCreateが呼び出され、アプリケーションがリセットされました。何が原因でしょうか?
未処理の例外をキャッチしてログに記録するようにアプリケーションを設定しましたが、そこに何も表示されませんでした。アプリケーションonCreate()とコンストラクターが呼び出され、アプリケーションがメイン/最初の画面に戻ってきたので、ユーザーは再度ログインしなければならなかったので、データベースが消去されたように見えます。
私の主な質問は、なぜアプリケーションオブジェクトonCreate()とConstructorが呼び出されたのですか(アプリケーションがなぜ殺されたのか)、なぜ上記の事態が発生した場合にデータベースが消去されたのですか?設定、アプリケーションの内部に、私のデータベースを殺すことは決してありません。
私はそれを理解していますが、アプリケーションオブジェクトが終了するとアプリケーション全体がリセットされたりリセットされたりします。正しい? – user638049
もしそうなら、何がアプリケーションオブジェクトを強制終了させるでしょうか。これは私のユーザーの何人かで起こっていますが、私はなぜそれがわかりません。 – user638049
ご覧のように、メモリが必要な場合、あなたのアプリは簡単に殺されるかもしれません。ユーザーがあなたのアプリに戻ると、実行中のプロセスがないので、新しいプロセスが作成されます。これはアンドロイドアプリケーションにとって本当に一般的なことです。サービスbtwではそうではありません。あなたのアプリがフォーカスを持っていない(またはカメラを開くだけで、多くのmemを使用する)間に、ユーザーが多くのことをすると、あなたの(背景の)アプリが殺されます。 – Nanne