2012-01-06 48 views
12

同期Androidでのアクティビティのアクティビティを理解してもらえますか?同期と非同期のアクティビティ

Androidでの同期と非同期のアクティビティを正確にはどういう意味ですか?

StartActivityStartSubActivityStartAcivityForResultアクティビティを同期的または非同期的に開始するか、両方の方法で動作させることができますか?

私は多くの記事を読んできましたが、これ以上の適切な説明は見つかりませんでした。

+0

Dinesh..Your質問@ [リンク]のhttpと同じです:// stackoverflowの.com/questions/8613295/difference-between-synchronous-activities-ans-asynchronous-activities [link]またこの投稿に返信しました。それで、なぜあなたは同じ質問をしているのですか?また、AFAIKのstartSubActivityは公開されておらず、その機能はstartActivityForResult()によって提供されています – Maverick

+0

コメントのためにRaviに感謝します。私はその質問に答えましたが、私はまだこのコンセプトを少し混乱させています。だから100%クリアしたい。あなたが私と共有することができる以上のいくつかのアイデアを持っている場合:) :) –

+1

"誰も私がアンドロイドで同期と非同期の活動を説明するのを助けることができます。 - Androidにはそのような概念はありません。 – CommonsWare

答えて

17

まず、Androidでは一度に1つのアクティビティしか実行できないため、同時に2つのアクティビティを実行することはありません。 「火と忘れ」をしたい場合、つまりアクティビティを起動したいが、あなたのアクティビティに値を返すことを期待していない場合は、startActivity()を使用してください。その場合、新しいアクティビティが開始され、アクティビティは一時停止されます。ユーザーがあなたの活動に戻ると、最終的にコントロールを回復する可能性があります。

startActivityForResult()を使用すると、起動しているアクティビティの結果が表示されます。この場合、呼び出しアクティビティはonActivityResult()をオーバーライドする必要があります。これは、起動されたアクティビティが終了し、結果が返されたときに呼び出されます(setResult()で設定されます)。私は「同期」と「非同期」という用語を使用することがで混乱することができると思いますが、いずれの場合も

、呼び出し元の活動と呼ばれる活動が同じタスクにあるので、それは(ある意味で「同期」ですこのコンテキスト)。呼び出されたアクティビティが終了するまで、呼び出しアクティビティは画面に表示されません。

より多くを知っておくと便利な読み取りがある: * http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html

- ブルーノ・オリベイラ(Androidデベロッパーリレーションズ、グーグル)

+1

素早い返事をいただき、ありがとうございました。しかし、私はどのような意味で「同期」と「非同期」という言葉がどのような意味で使用されているのかを私に説明することができます。 –

+3

同期は、特定のタスクが完了するまで実行を継続しないことを意味します。 'startActivity'がこのように動作した場合、他のアクティビティが実行されるまで、すべてのインタフェースがフリーズします。非同期とは、将来あなたのタスクが将来どこかで実行され、その間に実行が継続することを意味します。アクティビティが開始され、コードが実行され続け、最終的にコードが実行されることがわかります。 – slezica

+1

答えは適切に問題に対処していません。 –