2011-02-17 6 views
6

ほとんどのAndroidフレームワークコンポーネントはスレッドセーフではありません。少なくともこれは私が通常使用することを前提としています。startServce()はどのスレッドからも呼び出せますか?

しかし、startService()をバックグラウンドスレッドから呼び出すことは安全ですか?

私はどのスレッドからsendBroadcast()を呼び出すことが安全であることを述べている人ダイアンHackbornからのポストに出くわしたので、私は、これはstartService()http://groups.google.com/group/android-developers/msg/38a09b52de93f70a)についても同様であると仮定します。

フレームワーク体験のある方は誰でもコメントできますか?

ありがとうございます!

答えて

-3

私は理論を知らないけど、答えはイエスだと思うし、試してみるのは簡単です。 UI上の何かを更新する場合は、メインスレッドにHandlerを配置し、次にServiceにHandlerを配置し、UIに配置するデータを含むMessageを常に送信するようにしてください。

+0

DJC、お返事ありがとうございますが、これは本当に私の質問には対応していません。バックグラウンドスレッドからUIを更新することに関して:あなたは絶対に正しいです。しかし、私の質問は、バックグラウンドスレッドからUIを更新するのではなく、バックグラウンドスレッドからandroid.app.Serviceのインスタンスを開始することです。 – skyler

+0

実際には、私は:)あなたのスレッドで、startService(新しいインテント(this、MyService.class));何が起こるか見る。そのような単純な。 – DJC

+1

これは99.99%の時間で動作するかもしれませんが、スレッドセーフであるとは限りません。私はFroyoのソースを見て、私が見つけることができるものを見てみましょう。 – skyler

関連する問題