-1

これは非常にばかげた質問かもしれませんが、答えがはっきりしていません。

  1. 私の暗黙のインテントには、アクション、データ、およびカテゴリ (オプション) が含まれており、startActivity または startService を介してインテントを送信する際にこれらを渡します。

私たちが通常行うこのようなこと、

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(android.content.Intent.EXTRA_TEXT, "Standing on the Moon!");
startActivity(intent);

次に、マニフェスト ファイルで次のようなインテント フィルターを使用して、同じ操作を別の方法で実行します。

<activity android:name="ShareActivity">
    <intent-filter>
        <action android:name="android.intent.action.SEND"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <data android:mimeType="text/plain"/>
    </intent-filter>
</activity>

私の質問 - これを宣言する両方の方法は同じ目的のためのものですか、それらが宣言される2つの異なる方法は、異なる意味を持っていますか???

4

1 に答える 1

4

思い出すと、マニフェスト ファイルからアプリケーションをインテント フィルターとして参照すると、そのインテントを処理できることが他のアプリケーションに通知されます。したがって、メールを送信できる場合、この方法で自分自身をマニフェストに登録すると、別のアプリケーションがそのメールを使用して電子メールを送信できます。

これは、ギャラリー アプリケーションでよく見られます。アプリケーション自体がギャラリー アプリケーションでない限り、独自のアプリケーションを作成することはめったにありません。そのため、Android システムに利用可能なギャラリー/メール アプリケーションを尋ね、リストから 1 つを選択できるようにします。このインテントを処理できるアプリケーションとして自分自身を登録すると、このリストにアプリケーションが表示されます。

プログラムによるインスタンス化は他のアプリケーションでは認識されないため、これが 2 つの主な違いの 1 つだと思います。

于 2015-07-20T18:58:17.200 に答える