1

私のアクティビティはcountdowntimerスレッドを開始します。このスレッドは、終了した場合にもUIスレッドを更新しようとします

finish()このカウントダウンが終了する前に、アクティビティ自体が終了する場合があります。アクティビティが進行する場合、カウントダウンタイマーも進行しますか?

もしそうなら、代わりにサービスでカウントダウンタイマーを実行する必要があるかもしれません

4

1 に答える 1

1

必ずしもそうとは限りません。プロセスが強制終了されない限り、スレッドは存在します。フォアグラウンドアクティビティがない場合でも、プロセスがオペレーティングシステムによってすぐに強制終了されることはありません。それらを持たないことは、それが殺される可能性を高めるだけです。

スレッドからアクティビティへの参照があると、スレッドがまだそれを指しているためにアクティビティがガベージコレクションされないため、アプリのメモリフットプリントが増加する可能性もあります。この場合、(少なくとも)弱参照を使用することを検討する必要があります。

最後に、アプリがバックグラウンドにある場合でもカウントダウン時間をアクティブにすることを意図していることを考えると、アプリをサービスに移動することを検討する必要があります。

于 2012-12-23T21:53:48.457 に答える