2013-04-28 17 views
28

誰でもAndroidプラットフォームの「アクティビティ」と「インテント」の違いを説明できますか?Androidのアクティビティとインテントの違いは何ですか?

+6

そのキックスターターの質問。一度それを得ると、背中を見ることはありません。 – Siddharth

+0

私の答えが受け入れられた後、1週間後に受け入れられない理由についての説明はありますか?私は気にしませんが、受け入れられた答えは簡潔ではなく、構造がなく、それ以上の読解を提供しません。その時にはアップホントもありませんでした。 – Gusdor

答えて

36

非常に単純な言葉で言えば、はユーザーインターフェイスであり、ユーザーインターフェイスでできることは何でも可能です。あるユーザーインターフェイスから移動する場合は、新しいユーザーインターフェイスをIntentで起動する必要があります。 Intentは、最初のユーザーインターフェイスから別のユーザーインターフェイスにデータとともに渡されるイベントです。

インテントは、ユーザーインターフェイスとバックグラウンドサービス間でも使用できます。また、すべてのアクティビティーおよびバックグラウンド・サービスにデータをブロードキャストする場合は、Intentが渡されます。

Intentは、オブジェクトとして存在し、アクティビティは顔やインタラクションとともに生きています。それが役に立つと願っています。

+0

ここで何かを指摘したいと思います。私たちが本当に簡単なアンドロイドアプリケーションを持っていると想像してください。テキストボックスはこのアクティビティ内でhelloを呼び出し、他のプログラムやアクティビティがデータを送信した場合にthis.getIntent()を呼び出すことができます。だから私は活動と意図が密接に関連していると思う。 (私が間違っていたら私を修正してください。私はちょうどAndroidでプログラミングを始めるので、いくつかのコンセプトにも苦しんでいます) –

+0

これを初心者として、あなたの答えは私を大きく助けました。乾杯! –

+0

いつでも.. – Siddharth

4

これらは、どのようにも入れ替えることのできない異なるクラスです。 Activityサブクラスの使用が期待されるのは、アプリケーションウィンドウの内容と動作を制御することです。一方、Intentは、新しいActivityを起動してデータを渡すためによく使用される単純なデータ交換構造ですが、他の用途もあります。

3

アクティビティクラスでは、アクティビティがユーザとやり取りするように、UI要素を配置できる(フルスクリーンまたはフローティング)ウィンドウを作成します。

イントロは、1つのビュー(アクティビティ)から別のアクティビティ(別のアクティビティ)に切り替える場合に使用されます。

あなたはActivityOne.class現在だと、あなたが呼び出すとき:

Intent i = new Intent(this, ActivityTwo.class); 
startActivity(i); 

を、その後ActivityTwoがユーザーに表示されます。

16

あなたがインテントについて知っているのであれば、それらを使って新しいアクティビティを開始するときです。あなたの混乱を理解することができます。

最も単純なケースでは、あなたがこのような新しい活動を開始します。

Intent intent = new Intent(this, SomeOtherActivity.class); 
startActivity(intent); 

あなたが活動を始めているようですが確かに見え、あなたが開始されている活動は、「意思」です。しかし、実際に何をしているのかは、メソッドstartActivity()を呼び出して、それをintentというコンテナに渡しています。そのコンテナはstartActivity()に何をするかを伝えます。

あなたは新しい活動にデータを渡しているときにstartActivity()を呼び出すとき

Intent intent = new Intent(this, SomeOtherActivity.class); 
startActivity(intent); 
intent.putExtra("ANIMAL_TYPE", "unicorn"); 
intent.putExtra("ANIMAL_COLOR", "ruby"); 
startActivity(intent); 

は今、それは意図を見て、それがSomeOtherActivityクラスを開始する必要があることを知っているより明確にそれを見ることができます。また、SomeOtherActivityクラスでは、あなたがこのような意図から、それら渡されたキー/値のペアにアクセスすることができます。

Bundle extras = getIntent().getExtras(); 
if(extras !=null) { 
    String animal = extras.getString("ANIMAL_TYPE"); 
    String animalColor = extras.getString("ANIMAL_COLOR"); 
} 
+0

がよく説明されています。あなたはアンドロイドの開発者のためのチュートリアルを書いていますか? –

18

既存の答えは罰金ですが、ここでいくつかのリンクを持つ2つの本当に基本的な定義です。

Activity

ユーザインタフェースを表示するためのアプリケーションcomponent。アクティビティクラスは、すべてのユーザー操作が処理される場所です(ボタンの押下、リストの選択)。アクティビティは、それを画面上に表現するレイアウトを指定します。

Intent

目的は、システムメッセージです。他のアプリケーション(またはあなた自身の!)にイベントを通知するために、システムの周りにbroadcastを置くこともできますし、システムが新しい動作を表示するよう要求することもできます。

+1

'Activity'を起動し、' am '、つまりActivity Managerを使用して 'Intent'を起動する際に、どのような違いがありますか? –

関連する問題