android.intent.action.MAIN
significa que essa atividade é o ponto de entrada do aplicativo, ou seja, quando você inicia o aplicativo, essa atividade é criada.
Dos documentos
ACTION_MAIN with category CATEGORY_HOME
Além disso, daqui
Atividade Ação Comece como um ponto de entrada principal, não espera receber dados.
android.intent.category.DEFAULT é usado principalmente para intenções implícitas. Se sua atividade deseja ser iniciada por uma intenção implícita, ela deve incluir este catetor em seu filtro. Se sua atividade puder ser iniciada por um intent implícito quando nenhuma categoria específica for atribuída a ela, seu filtro de intent deve incluir esta categoria.
android.intent.category.LAUNCHER
categoria - fornece informações adicionais sobre a ação a ser executada.
CATEGORY_LAUNCHER
significa que deve aparecer no Iniciador como um aplicativo de nível superior
Veja a documentação ..
- http://developer.android.com/reference/android/content/Intent.html
- http://developer.android.com/guide/topics/manifest/action-element.html
MAIN
sozinho não vai "iniciar a atividade em casa".MAIN
tem muitos usos.ACTION_MAIN
é considerado um ponto de entrada para o aplicativo. Normalmente, ele se combina comCATEGORY_LAUNCHER
um<intent-filter>
para indicar uma atividade que deve aparecer no inicializador da tela inicial ou em qualquer outra coisa que se considere um inicializador. Esses "iniciadores" podem consultarPackageManager
, usandoqueryIntentActivities()
, para localizar essas atividades e exibi-las para o usuário.No entanto,
ACTION_MAIN
pode ser usado em combinação com outras categorias para outros fins especializados. Por exemplo,CATEGORY_CAR_DOCK
comACTION_MAIN
indica uma atividade que deve ser considerada uma candidata a ser exibida quando o usuário deixa o telefone cair em uma doca de carro fornecida pelo fabricante.Quando um
Intent
é usado comstartActivity()
, seIntent
ainda não estiver colocado em uma categoria, ele será colocado emCATEGORY_DEFAULT
. Portanto, um<activity>
<intent-filter>
precisa especificar alguns<category>
, usando,<category android:name="android.intent.category.DEFAULT" />
se nada mais.fonte
ACTION_MAIN
que não envolve um iniciador no estilo da tela inicial.<intent-filter>
com<action android:name="android.intent.action.MAIN" />
e<category android:name="android.intent.category.LAUNCHER" />
.finish()
imediatamente, mas os usuários pensarão que seu aplicativo está quebrado.<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
Geralmente, basta adicionar,
android.intent.category.DEFAULT
mesmo se você tiver outras categorias. Isso garantirá que, se Requesting Intent não fornecer nenhuma categoria ao iniciar o uso do intentstartActivity(intent)
, sua Atividade de recebimento também poderá receber esses Intents.Fonte: The Busy Coders Guide to Android Development
https://commonsware.com/Android/
fonte