¿Qué es packageContext en Intent # (Context packageContext, Class <?> Cls)?
El documento dice:
PackageContext A Contexto del paquete de aplicación que implementa esta clase.
Pero, ¿qué significa? ¿Cuál clase es "esta clase"?
¿Por qué new Intent(this,XXX.class)
funciona?
- Abrir foro en Tapatalk vía Intent
- Los extras de intención no se han quitado / reemplazado
- Cómo borrar todas las actividades de la pila en API 8?
- Detección de dispositivo Bluetooth en Android - startDiscovery ()
- Pasar ArrayList de objetos a través de la intención - Java (Android)
- Solicitar actividad predeterminada sin abrir realmente la actividad
- Manejo de los intentos de descarga en mi aplicación
- Android Intent Data Parámetro de consulta Uri
Puede pasar cualquier objeto de contexto que obtuvo de cualquiera de las clases de la aplicación. Así que puede utilizar un objeto de actividad, servicio o puede llamar a getApplicationContext () y pasar el objeto de contexto devuelto al constructor Intent.
Piense en Contexto como un estado de su Aplicación. Se utiliza para manipular recursos y servicios utilizados por la aplicación como base de datos, archivos locales, cargadores de clases, preferencias compartidas, etc.
Cuando alguien te llama y te pide tu tiempo lo que es lo primero que dices … ¿Qué es esto en referencia a? O ¿cuál es el contexto de esta conversación? Dependiendo del contexto, puede decidir si vale la pena continuar con la llamada o no. Si procedes, entonces la conversación debería ser relativamente fácil ya que ya sabes el contexto.
Lo mismo sucede con Intents. ¿Qué es un intento? Algo que tiene una intención – Uno de ellos es iniciar una actividad.
Intent intent = new Intent(getApplicationContext(),ActivityTwo.class); startActivity(intent);
Si esto hace que su concepto sea un poco más claro que permite proceder a su pregunta y la API real –
Intent#(Context packageContext, Class<?> cls)
Como usted tiene avisos el primer argumento debe ser del tipo Contexto que sabemos es una clase abstracta. Normalmente, puede pasar cualquier clase concreta que extienda la clase Context
– Clase de Activity
es una de ellas (en cuyo caso simplemente use this
en el argumento).
Creo que está destinado a ser el contexto relacionado con el paquete de aplicación que implementa la clase actual.
Por ejemplo, si está en una clase de perro y tiene la siguiente estructura de paquete com.mycompany.dogfinder.dog, el contexto de paquete se refiere al contexto asociado con el paquete que implementa la clase de perro. En este caso, el contexto asociado con la clase de perro sería el contexto relacionado con el paquete de aplicación com.mycompany.dogfinder.
Esto me tomó un poco de tiempo para averiguar lo que se estaba diciendo, pero creo que eso es lo que significa.
Para iniciar la actividad de la actividad:
public SomeActivity extends Activity{ ... private startAnother(){ Intent intent = new Intent(getApplicationContext(), AnotherActivity.class); startActivity(intent);// works fine getApplicationContext().startActivity(intent)//works too, //but flag Intent.FLAG_ACTIVITY_NEW_TASK needed and new you will get //backstack offcourse } ... }
Propósito que utiliza el contexto para crear sólo ComponentName:
public Intent(Context packageContext, Class<?> cls) { mComponent = new ComponentName(packageContext, cls); } // Identifier for a specific application component public ComponentName(Context pkg, Class<?> cls) { mPackage = pkg.getPackageName(); mClass = cls.getName(); }
- Diferencia entre los anuncios de Admob y los anuncios de Firebase
- Las animaciones personalizadas para iniciar actividades en Android no funcionan como se esperaba