定期的(1分間隔くらい)にバックグラウンドで動作し続けるアプリを作っています。
イメージとしては、
スタートボタンを押すと定期処理が開始され、
ストップボタンを押すと終了します。
理想としては、永続的に動作し続けるアプリです。
しかし、現状では放置して5~6時間ほどで落ちてしまいます。
・落ちた後にlogcatを見ていますが例外等のエラー系メッセージは出ていません。例外もUncaughtExceptionHandlerを拡張しているので、キャッチ漏れはないはずです。
・定期処理は、AlarmManagerとBroadcast+Serviceで回しています。
・上記のようなアプリは推奨されていないのはわかっていますが、今回は個人向けの開発ではないため、バッテリー等を考える必要はありません。
・テストしている環境は、Android4.3の実機です。そのため、Android8あたりからあるバックグラウンド制限などはないはずです。
・メモリーは50%ほどフリーなので大丈夫だと思っていますし、メモリリークは起こっていないと思われます。
・落ちるのは毎回同じような時間です。例えば、18時に放置して、23時くらいに毎回落ちています。
・以下のようなGCログが1分ごとくらいに出ているのですが、落ちている時はちょうどこのGCログが出るようなタイミングでした。
D/dalvikvm: GC_FOR_ALLOC freed 1990K, 40% free 4284K/7092K, paused 81ms, total 99ms
・端末をPCから接続せずにテストする必要もあるので、現状は大部分のログをDBに書き出しています。そのためDB負荷は高いです。これによるエラー落ちは結構ありますが、DB関連はすべて例外対応をしています。5時間で3万強の行数が保存されます。
以上のような状況から、落ちてしまう可能性として考えられるのは何でしょうか?
これはOSから落とされていると考えて良いのでしょうか?
また、今後の対策などがあれば教えてください。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/01/26 04:43
退会済みユーザー
2018/01/30 01:21
退会済みユーザー
2018/01/31 00:12