¿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?

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).

Introduzca aquí la descripción de la imagen

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(); } 
  • ¿Por qué mi aplicación no está en la lista de aplicaciones para abrir el archivo txt?
  • Obtener datos de otra actividad
  • Cómo capturar el nuevo intento en onNewIntent ()?
  • ¿Existen intentos de Android para agregar datos a Google?
  • Detectar cuándo un dispositivo USB está separado en Android
  • ¿Podemos usar Intent.EXTRA_ALLOW_MULTIPLE para versiones anteriores de los niveles de la API de Android usando la Biblioteca de soporte de Android?
  • Cómo pasar un array de Uri entre Activity usando Bundle
  • pasar 2 valores de una a otra actividad
  • Iniciar Actividad con acción, pero sin categoría
  • Regresa a la actividad principal / principal sin recargarla
  • Actividad de la cámara que hace que uri pase a null cuando la orientación de la pantalla cambia
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.