2012-03-28 13 views
0

こんにちは私は長時間実行しているAndroidアプリを持っています。それは対話的なユーザーがいない特別な状況です。ユーザーがいないため、起動している他のアプリはありません。 しかし、私はなど、履歴書、私のアプリの主な活動は、定期的に作成し、停止のライフサイクルを通して行く見ています、それが走ったように私は、ログファイルを書いた:Android - appのアクティビティが停止し、不明な理由で起動しました

 
2012.03.28 05:31 Main activity created 
2012.03.28 05:31 Main activity started 
2012.03.28 05:31 Main activity resumed 
2012.03.28 05:59 Main activity paused 
2012.03.28 05:59 Main activity created 
2012.03.28 05:59 Main activity started 
2012.03.28 05:59 Main activity resumed 
2012.03.28 05:59 Main activity stopped 
2012.03.28 06:12 Main activity paused 
2012.03.28 06:12 Main activity created 
2012.03.28 06:12 Main activity started 
2012.03.28 06:12 Main activity resumed 
2012.03.28 06:12 Main activity stopped 
2012.03.28 06:33 Main activity paused 
2012.03.28 06:33 Main activity created 
2012.03.28 06:33 Main activity started 
2012.03.28 06:33 Main activity resumed 
2012.03.28 06:33 Main activity stopped 
2012.03.28 08:08 Main activity paused 
2012.03.28 08:08 Main activity created 
2012.03.28 08:08 Main activity started 
2012.03.28 08:08 Main activity resumed 
2012.03.28 08:08 Main activity stopped 
... 

誰もがなぜ知っていますか?ありがとう。

答えて

1

Androidは、ユーザーが見ることができないアプリケーションやコンポーネント(すべてが殺されることさえありますが、まれなケースです)を強制終了する権利を有します。ほとんどの場合、これはメモリ圧迫によるもので、システムはリソースを解放するためにアプリケーションを強制終了します。

長期実行プロセスがバックグラウンドで実行されており、連続して実行する必要がある場合は、foreground serviceにすることをお勧めします。これにより、サービスはバックグラウンドサービスよりも優先順位が高くなり、システムによって中断される必要はありません。

サービスがフォアグラウンドで実行されている必要がある場合を除いて、サービスが正常に処理されるため、正常に処理されるようにサービスを実装する必要があります。サービスをフォアグラウンドに強制すると、デバイス全体のパフォーマンスが低下する危険性が高まり、一部のユーザー(少なくとも私)を悩ませる通知バーに永続的な通知が強制されます。

+0

あなたの答えSlothsberryに感謝します。この場合、デバイス上の唯一のアプリです。 –

+0

Androidは(そしていつも私の経験では)どんなアプリケーションも殺すことができます。私はあなたがそれをハックすることができると確信していますが、私の経験では、OSとフレームワークの設計と戦う価値はありませんが、代わりにあなたの実装を適応させる。結局のところ、あなたのコードを書けるように簡単にコードを書き換えることはできません。 –

1

OSのようなサウンドはあなたの活動を殺しているので、代わりにサービスとして実行する必要があります。

+1

実際、バックグラウンドサービスもシステムによって強制終了される可能性があります。 –

関連する問題