2011-09-28 11 views
10

は、私は別の事が起こって持っているAndroidアプリを持っているが、すべての基本的スレッドです(そして間違いなくAndroidのデバッガにスレッドです)複数のアニメーションリスナーがそのループがあるAndroidには何本のスレッドがありますか?

は、そこにある互いに

を呼び出しますカウントダウンタイマーは、開始後に常に0にカウントダウンします。

これでカウントダウンタイマーを追加することを検討する必要があります。これらのループ処理のうち、どれだけ多くの処理を実行できますか?この特定の実装では、パフォーマンスが明らかになるまで、パフォーマンスや効率などを心配していません。

Insightは、私はあなたがいる限り、あなたが適切に自分の寿命を管理しているとして、アンドロイドのアプリケーションで安全に使用し、「忙しいループ」と防ぐことができますスレッド数を排出することを学ぶことは非常に驚くだろう

答えて

7

を高く評価発生するのと同じように。

私が学んだことの一つは、あなたがいつでも5つのasynctasksを操作できることを確信しています。もしあなたが新しいものを起動すると、それらは自在に存続し、私はasynctaskを5回オフにしましたが、デバッガは5つの非同期スレッドが正常に動作していると言いますが、リソースプールが最も古いデッドasynctaskをkillするため、私はいつでもオンとオフを切り替えることができます。

+0

素晴らしい、よく知っておいてください。私は多くのasynctasksを使用する別のアプリケーションで作業しています – CQM

0

私が知っている最大値はありません。しかし、私は多くのスレッドを必要としない可能性が最も高いと言えます。

AndroidのHandler、特にpostDelayed()メソッドを使用して、カウントダウンリスナーを1つのスレッドに保持できます。 Looperを別のスレッドで開始し、Handlerを使用して、タイムアウトを管理します(ビジー待機またはスリープループを行わない)。

+1

どのようにして、自分のユーザー名? – snapfractalpop

0

私はカウントダウンタイマーがスレッドを作成するとは思わない - それは単にあなたのタスクを見てからメインスレッドのキューに追加する必要があります。

あなたのすべてのリスナーはとにかく可視オブジェクトのためのすべてのリスナーを()管理する単一のスレッドがある(同様に同じスレッド上で行わなければならない。

をだからあなたはおそらくできるだけ多くのスレッドの近くにどこにも使用されていません多くのスレッドを作成していた場合、私は心配していました - 同期をとるのは本当に難しく、得られる以上にコストがかかるかもしれませんが、あなたが適切であると思うほど多くを割り当てます(もちろん安いデバイスでのパフォーマンスをテストしてください)

関連する問題