2016-09-16 4 views
0

私はこの質問について考えていました。サービスが無期限ループでアクティビティの変数への参照をいくつか使用していて、明示的にサービスを停止しない限り、サービスが強制終了されないため、アクティビティは実行中のサービスと同じくらい簡単に殺されます? すべての回答は非常に高く評価されます。Androidサービスが無期限に稼働しない

+0

@Onikは、共有される変数によって異なります。アクティビティ自体に参照がある場合、アクティビティは無効です。静的でないクラスが親に対する暗黙的な参照を持つため、静的でないクラスが共有されている場合にも同じ問題が発生します。 –

答えて

2

アクティビティは、その変数を参照する他のコンポーネントがある場合には、ガベージコレクションできないことがあります。これらの共有変数のいずれかがアクティビティへの明示的または暗黙的な参照を持っている場合は、Activityの余分なコピーがあります。これはメモリリークです(はい、Javaで可能です)。このため、コンポーネント間で変数を共有することは悪い考えです。

+0

あなたの迅速で非常に合理的な答えをありがとう!無期限に実行するために、私のサービスが何の活動にも依存しないようにしようとします。 – user1870797

関連する問題