Intent FiltersのCategoryフィールドでAndroid.intent.category.DEFAULT
を使用する目的は何ですか?
カテゴリは暗黙的なインテントに使用されます。したがって、特定のカテゴリが割り当てられていないときに暗黙のインテントによってアクティビティが開始される場合、そのインテントフィルタにはこのカテゴリが含まれている必要があります(インテントフィルタに他のカテゴリがある場合でも)。他のカテゴリでアクティビティを呼び出す必要があることが確実な場合は、デフォルトを使用しないでください。
カテゴリをデフォルトに設定しても、アプリの起動時にこのアクティビティがデフォルトで使用されるわけではありません。アクティビティはシステムに「ああ、スターターのインテントのカテゴリがNothingに設定されていても! "
このカテゴリは、主に暗黙的な意図に使用されます。暗黙的な意図によってアクティビティを開始する場合は、このカテゴリをフィルタに含める必要があります。
「デフォルト」という用語は「デフォルトcandidate」と理解されるべきだと思います。データの一部に対するアクションが複数のアクティビティに解決される場合、Androidはすべての候補をユーザーに提示し、ユーザーは好みのデフォルトを選択できます。
参照:
http://developer.Android.com/guide/components/intents-filters.html
そのページから抽出:
Androidは、startActivity()に渡されたすべての暗黙的なインテントを、少なくとも1つのカテゴリ「Android.intent.category.DEFAULT」(CATEGORY_DEFAULT定数)を含んでいるかのように扱います。したがって、暗黙的なインテントを受け取る意思があるアクティビティには、インテントフィルターに「Android.intent.category.DEFAULT」を含める必要があります。 (「Android.intent.action.MAIN」および「Android.intent.category.LAUNCHER」設定のフィルターは例外です。新しいタスクを開始し、ランチャー画面に表示されるアクティビティをマークします。「Android.intent」を含めることができます.category.DEFAULT」をカテゴリのリストに追加しますが、必須ではありません。)
アクティビティはContext.startActivity()で見つけられるように、CATEGORY_DEFAULTをサポートする必要があります。
暗黙的なインテントを受け取るには、インテントフィルターにCATEGORY_DEFAULTカテゴリを含める必要があります。メソッドstartActivity()およびstartActivityForResult()は、CATEGORY_DEFAULTカテゴリーを宣言したかのようにすべてのインテントを扱います。インテントフィルターで宣言しない場合、暗黙的なインテントはアクティビティに解決されません。
実際には、アプリの実行中に他のアクティビティを呼び出すことができるようにします。ランチャーは、それを含むアクティビティを開始する最初のアクティビティにします。インテントを使用して他のアクティビティにアクセスするには、DEFAULTを設定して「実際の」アクティビティとしてリストする必要があります。それは私が知っていることからですので、間違っている場合は引用しないでください。
https://developer.Android.com/guide/components/intents-filters
暗黙のインテントを受け取るには、インテントフィルターにCATEGORY_DEFAULTカテゴリを含める必要があります。メソッドstartActivity()およびstartActivityForResult()は、CATEGORY_DEFAULTカテゴリーを宣言したかのようにすべてのインテントを扱います。インテントフィルターでこのカテゴリを宣言しない場合、暗黙的なインテントはアクティビティに解決されません。
(名前が示すように)何らかの操作をデフォルトのアクションとして宣言するために使用されます。メモ帳アプリがあることを考えてみましょう(Android notepad sample)を参照してください。アプリの最初のページは、すべてのメモ帳ファイルのリストで構成されています。メモ、メモの削除などは実行できますが、キーパッドの中央ボタンを押すと、編集ウィンドウが開くことを意味するデフォルトのアクションとして編集を行いたいです。