0

私はアンドロイド開発に不慣れで、どのように使用すべきかservice's、より具体的にはどの種類を使用すべきかを理解するのに苦労しています。私は物事に対してのみ行う単純なシステムを開発しています。それらの 1 つは、サーバーに簡単なtelnet質問を継続的に行うことです。これらの質問に対する回答が画面に表示されます。

だから私の質問を簡単にするために。どのようなサービスを選択する必要がありますか? バインドintent serviceなど?

ネットワーク通信を行うと想定されているため、独自のスレッドを実行する必要があると思いますが、どうすればよいですか。

最後に、そして最も重要なことですが、サービスが収集した情報をどのように提供/提供MainActivityし、画面に表示するのですか?

4

2 に答える 2

1

どのようなサービスを希望する必要がありますか? バウンド、インテントサービスなど?

バインドされたサービスは、別のアプリケーション コンポーネントがバインドされている間だけ実行されます。つまり、アクティビティがそのサービスにバインドされ、後でそのアクティビティが終了すると、サービスも破棄されます。
そのため、まず、必要なサービスの動作を決定します。それにバインドされているアクティビティが破棄されたときに、それを破棄しますか? はいの場合は、おそらくバインドされたサービスが正しいことです。そうでない場合は、開始したコンポーネントが破棄された場合でも、バックグラウンドで無期限に実行できる開始済みのサービスを代わりに使用します。

ネットワーク通信を行うと想定されているため、独自のスレッドを実行する必要があると思いますが、どうすればよいですか。

はい、あなたは正しいです。このServiceクラスを使用して、重い作業を行うスレッドを内部に作成するか、IntentService独自のワーカー スレッドを提供する を使用して単純化することができます。

最後に、そして最も重要なことですが、サービスが収集した情報を MainActivity にどのように提供/与えるのですか?

bound を使用することにしたService場合は、いわゆるバインダー オブジェクトを介してサービスと通信できるようになります。一方、そうする場合は、 ResultReceiverまたはBroadcastReceiverIntentServiceを使用して結果を送り返すことができます。

推奨される読み物:
http://developer.android.com/guide/components/services.html
http://developer.android.com/guide/components/bound-services.html

于 2013-07-09T11:41:05.277 に答える