Programa de Android para cambiar de modo. Cambiar entre aplicaciones en Android. Utilice adb para realizar copias de seguridad del software en su computadora

La pestaña Iniciador, que se abre desde la pantalla de inicio, contiene íconos para todas las aplicaciones instaladas en su teléfono, incluidas las aplicaciones descargadas e instaladas desde Mercado de Android u otras fuentes.

Cuando abres una aplicación, otras aplicaciones que estás usando no se detienen; continúan ejecutándose, reproduciendo música, mostrando páginas web y más. Puedes cambiar rápidamente entre aplicaciones para trabajar con varias aplicaciones a la vez. sala de operaciones sistema Android y las aplicaciones que se ejecutan en él se comunican para que las aplicaciones no utilizadas no consuman recursos. Las aplicaciones se detienen y se reinician cuando es necesario. Por lo tanto, no hay motivo para detener las aplicaciones a menos que esté seguro de que la aplicación descargada no funciona correctamente. Para obtener detalles sobre cómo las aplicaciones usan la memoria y cómo administrarlas, consulte .

Obtenga información sobre cómo buscar e instalar aplicaciones adicionales para su teléfono (incluidas herramientas de rendimiento, utilidades, juegos, materiales de referencia y otros tipos software) mira la sección.

Abrir y cerrar el Launchpad

Si tiene más aplicaciones abiertas de las que caben en el iniciador, puede desplazar el iniciador hacia arriba o hacia abajo para ver todas las aplicaciones.

Puede agregar el ícono de una aplicación a su pantalla de inicio presionando y manteniendo presionado el ícono en el Iniciador hasta que vibre y luego arrastrando el ícono a la ubicación deseada en la pantalla de inicio.

El Launchpad se cierra automáticamente cuando tocas un ícono para abrir una aplicación o mueves un ícono desde el Launchpad a la pantalla de inicio.

Abrir una aplicación

  • Haga clic en el icono de la aplicación en el panel Iniciador.
  • Toque el ícono de la aplicación en la pantalla de inicio.

Cambiar a una aplicación usada recientemente

Se abrirá una pequeña ventana que contiene iconos de todas las aplicaciones utilizadas recientemente.

  • Toque un icono para abrir su aplicación asociada.

O haga clic en el botón Atrás para volver a la aplicación actual.

Estoy creando una aplicación que necesita poder cambiar entre aplicaciones que el usuario tiene abiertas (por ejemplo, aplicaciones en el menú multitarea), tengo el nombre de componente de 10 aplicaciones nuevas y puedo iniciarlas (es decir, cambiar a ellas). ) como esto:

Intención = nueva Intención(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intención.setComponent(información); iniciarActividad(intención);

Sin embargo, cuando intento cambiar en Facebook (y probablemente en algunas aplicaciones similares), me pide un permiso específico:

JavaScript ) requiere com.facebook.permission.prod.FB_APP_COMMUNICATION

¿Hay alguna forma de solucionar este problema cambiando a la aplicación en lugar de iniciarla? ¿Puedo simplemente enviar el foco a una aplicación diferente?

0

1 respuestas

Si no tiene permiso, creo que sólo puede iniciar la actividad de otra aplicación cuando su atributo "exportar" esté establecido en verdadero. Una aplicación similar a Facebook puede establecer esto en falso y no permitir que la otra aplicación acceda a su actividad.

No lo he probado solo, pero puedes probar los siguientes códigos:

Intent extApp= getPackageManager().getLaunchIntentForPackage(nombre-del-paquete-de-facebook); this.startActivity(extApp);

Espero que esto ayude.

Una aplicación no siempre consta de una sola pantalla. Por ejemplo, hemos creado muy programa útil y el usuario quiere saber quién es su autor. Hace clic en el botón "Acerca de" y es llevado a nueva pantalla, donde hay información útil sobre la versión del programa, autor, dirección del sitio web, cuántos gatos tiene el autor, etc. Piense en la pantalla de actividad como una página web con un enlace a otra página. Si miras el código en el archivo. Actividad principal.java De lecciones anteriores, verás que nuestra clase Actividad principal también se aplica a Actividad(o sus herederos) o, más precisamente, heredado de él.

La clase pública MainActivity extiende AppCompatActivity

Como puedes imaginar, deberíamos crear una nueva clase que podría ser similar a Actividad principal y luego de alguna manera cambiar a él cuando se presiona el botón.

Para el experimento, tomaremos el programa de la primera lección y usaremos un botón para experimentar (o crear nuevo proyecto con un botón en la pantalla). A continuación, creemos un nuevo formulario para mostrar información útil. Por ejemplo, mostremos al usuario qué hace un gato cuando va de izquierda a derecha. De acuerdo, esta es información muy importante que proporciona la clave para desentrañar el Universo.

Crearemos una nueva actividad manualmente, aunque el estudio cuenta con plantillas ya preparadas. Pero ahí no hay nada complicado y para una mejor comprensión conviene hacer todo a mano.

Creemos un nuevo archivo de marcado XML actividad_acerca de.xml en carpeta resolución/diseño. Haga clic derecho en la carpeta disposición y seleccione de Menú de contexto Nuevo | Archivo de recursos de diseño. Un cuadro de diálogo aparecerá. En el primer campo, ingrese el nombre del archivo. actividad_acerca de. En el segundo, debes ingresar el elemento raíz. Por defecto está ahí Diseño de restricciones. Borra el texto e ingresa Vista de desplazamiento. Ingresar algunos caracteres es suficiente para que el estudio sugiera opciones listas para usar; puede presionar Enter inmediatamente sin esperar a que se ingrese la palabra completa:

Obtendrá un espacio en blanco correspondiente en el que insertaremos el elemento. Vista de texto.

La información se recuperará de los recursos, es decir, el recurso de cadena. sobre_texto. Ahora está resaltado en rojo, lo que indica ausencia de información. Era posible presionar Alt+Entrar e introduzca texto en el cuadro de diálogo. Pero para nuestro ejemplo, este método no funcionará, ya que nuestro texto será de varias líneas y utilizará caracteres de control. Así que hagámoslo de otra manera. abramos el archivo res/valores/cadenas.xml e ingrese el siguiente texto manualmente:

Hay un roble verde cerca de Lukomorye;\n Una cadena de oro en ese roble:\n Tanto de día como de noche. gato científico\nTodo gira y gira en cadena;\nVa bien- la canción comienza,\n Izquierda- cuenta un cuento de hadas.

Usamos las etiquetas de formato de texto HTML más simples como , , . Para nuestro ejemplo, basta con resaltar en negrita las palabras relacionadas con el gato y la dirección del movimiento. Para mover texto a una nueva línea, use símbolos \norte. Agreguemos otro recurso de cadena para el título de la nueva pantalla:

Sobre el programa

Descubrimos las marcas. A continuación necesitas crear una clase para la ventana. Acerca deActivity.java. Seleccionar del menú Archivo | Nuevo | Clase Java y complete los campos requeridos. Al principio basta con indicar sólo el nombre. Luego te ocuparás de otros campos.

Consigamos el espacio en blanco.

Ahora la clase está casi vacía. Agreguemos el código manualmente. La clase debe heredar de una clase abstracta. Actividad o sus familiares como FragmentoActividad, Actividad de compatibilidad de aplicaciones etc. agreguemos extiende la actividad. La clase de actividad debe tener un método. enCrear(). Coloque el cursor del mouse dentro de la clase y seleccione del menú. Código | Anular métodos(Ctrl+O). En el cuadro de diálogo buscamos la clase requerida, puedes escribir los primeros caracteres en el teclado para una búsqueda rápida. En el método creado necesitas llamar al método. establecerContentView(), que cargará el marcado preparado en la pantalla. Tendremos esta opción.

Paquete ru.alexanderklimov.helloworld; importar android.app.Activity; importar android.os.Bundle; /** * Creado por Alexander Klimov el 01/12/2014. */ clase pública AboutActivity extiende Actividad ( @Override protected void onCreate(Bundle saveInstanceState) ( super.onCreate(savedInstanceState); setContentView(R.layout.activity_about); ) )

Ahora viene la parte más importante. Nuestra tarea es ir a una nueva pantalla cuando hacemos clic en un botón en la primera pantalla. volvamos a clase Actividad principal. Escribamos un controlador de clic de botón:

Public void onClick (Ver vista) (Intención intención = nueva Intención (MainActivity.this, AboutActivity.class); startActivity(intención);)

Aquí utilicé el método de procesamiento de clic en un botón descrito en la lección.

Para abrir una nueva pantalla necesitas crear una instancia de la clase. Intención e indicamos la clase actual en el primer parámetro, y la clase a la que ir en el segundo, tenemos esto Acerca de la actividad. Después de esto se llama al método Iniciar actividad(), que abre una nueva pantalla.

Si ahora intenta probar la aplicación en el emulador, recibirá un mensaje de error. que hicimos mal? Nos perdimos un paso importante. Necesitas registrar uno nuevo. Actividad en el manifiesto AndroidManifest.xml. Busque este archivo en su proyecto y haga doble clic en él. Se abrirá la ventana de edición de archivos. Agregar una nueva etiqueta después de la etiqueta de cierre para la primera actividad. Escribe por tu cuenta y utiliza activamente las indicaciones. Obtendrá lo siguiente:

Aquí es donde el recurso de cadena resulta útil sobre_título. Lanzamos la aplicación, hacemos clic en el botón y aparece una ventana. Sobre el programa. Así, aprendimos cómo crear una nueva ventana y llamarla haciendo clic en un botón. Y a nuestra disposición tenemos un programa muy práctico: ahora siempre tendremos a mano una pista de lo que hace el gato cuando va hacia la izquierda.

Una vez más, tenga en cuenta que la segunda clase de actividad creada debe heredar de la clase Actividad o similares ( ListaActividad etc.), tener un archivo de marcado XML (si es necesario) y especificarse en el manifiesto.

Después de llamar al método Iniciar actividad() se lanzará una nueva actividad (en este caso Acerca de la actividad), se volverá visible y se moverá a la parte superior de la pila que contiene los componentes en ejecución. Al llamar a un método finalizar() de una nueva actividad (o cuando se presiona la tecla de retorno del hardware) se cerrará y se eliminará de la pila. El desarrollador también puede navegar a la actividad anterior (o cualquier otra) utilizando el mismo método. Iniciar actividad().

Crear una tercera pantalla: un método para los perezosos

Los programadores, como los gatos, son criaturas perezosas. Recuerde siempre que para una actividad necesita crear un marcado y una clase que herede de Actividad, y luego no olvides registrar la clase en el manifiesto, bueno.

En este caso, seleccione del menú Archivo | Nuevo | Actividad | Actividad Básica(u otra plantilla). A continuación, aparecerá la conocida ventana para crear una nueva actividad. Complete los campos requeridos.

Haga clic en el botón Finalizar y la actividad estará lista. Para verificar esto, abra el archivo de manifiesto y busque una nueva entrada. Ni siquiera estoy hablando de archivos de clase y de marcado, aparecerán frente a ti por sí solos.

Agregue usted mismo un nuevo botón a la pantalla de actividad principal y escriba el código para cambiar a la actividad creada.

Al principio, le recomendaría que cree manualmente todos los componentes necesarios para la nueva actividad para que comprenda la relación entre la clase, el marcado y el manifiesto. Y cuando lo domines, podrás utilizar el Asistente de creación de actividades para acelerar tu trabajo.

Pasar datos entre actividades

Usamos un ejemplo simple para llamar a otra pantalla de actividad. A veces no solo es necesario llamar a una nueva pantalla, sino también transferirle datos. Por ejemplo, nombre de usuario. En este caso, es necesario utilizar un área especial. datos extra, que tiene la clase Intención.

Región datos extra es una lista de pares valor clave, que se transmite junto con la intención. Las cadenas se utilizan como claves y cualquier tipo de datos primitivo, matrices de primitivos y objetos de clase se pueden utilizar para los valores. Manojo y etc.

Para transferir datos a otra actividad, utilice el método ponerExtra():

Intent.putExtra("Clave", "Valor");

La actividad receptora debe llamar a algún método apropiado: obtenerIntExtra(), obtenerStringExtra() etc.:

Int recuento = getIntent().getIntExtra("nombre", 0);

Rehagamos el ejemplo anterior. Ya tenemos tres actividades. La primera actividad tendrá dos campos de texto y un botón. Apariencia podría ser el siguiente:

en la segunda actividad Segunda Actividad establecer el elemento Vista de texto, en el que mostraremos el texto recibido de la primera actividad. Escribamos el siguiente código para el método. enCrear() en la segunda actividad.

@Override protected void onCreate(Bundle saveInstanceState) ( super.onCreate(savedInstanceState); setContentView(R.layout.activity_segundo); Usuario de cadena = "Animal"; Regalo de cadena = "agujero sin cobertura"; Información de TextViewTextView = (TextView)findViewById( R .id.textViewInfo); infoTextView.setText(usuario + ", te dieron " + regalo); )

Si ahora ejecutamos el programa y simplemente abrimos la segunda ventana, como se describió en la primera parte del artículo, veremos la inscripción predeterminada Animal, te entregaron un agujero sin cobertura. De acuerdo, es bastante molesto recibir mensajes de este tipo.

Corrijamos la situación. Añade el código a la primera actividad:

Public void onClick(Ver vista) ( EditText userEditText = (EditText) findViewById(R.id.editTextUser); EditText giftEditText = (EditText) findViewById(R.id.editTextGift); Intent intent = new Intent(MainActivity.this, SecondActivity. class); // en la clave de nombre de usuario insertamos el texto del primer campo de texto intent.putExtra("username", userEditText.getText().toString()); // en la clave de regalo insertamos el texto del segundo campo de texto intent.putExtra("regalo", giftEditText.getText().toString()); startActivity(intención); )

Colocamos el objeto en un contenedor especial. Intención dos claves con valores que se toman de campos de texto. Cuando el usuario ingresa datos en los campos de texto, ingresarán a este contenedor y pasarán a la segunda actividad.

La segunda actividad debería estar lista para recibir calurosamente los mensajes de la siguiente manera (en negrita).

// Valores predeterminados Usuario de cadena = "Animal"; Regalo de cadena = "agujero sin cobertura"; usuario = getIntent().getExtras().getString("nombre de usuario"); regalo = getIntent().getExtras().getString("regalo"); TextView infoTextView = (TextView)findViewById(R.id.textViewInfo); infoTextView.setText(usuario + ", te dieron " + regalo);

Ahora el mensaje parece menos ofensivo e incluso agradable para algunos. En ejemplos complejos, es recomendable agregar una marca al procesar datos. Puede haber situaciones en las que inicies una segunda actividad con datos vacíos de tipo nulo, lo que puede provocar que la aplicación falle.

En nuestro caso, sabemos que esperamos un valor de cadena, por lo que el código se puede reescribir así:

Intención intención = getIntent(); usuario = intent.getStringExtra("nombre de usuario");

Usuario = getIntent().getStringExtra("nombre de usuario");

El programa tiene un inconveniente: no está claro de quién recibimos saludos. Ningún mono bien educado aceptará un regalo de una fuente anónima. Entonces, como tarea, agregue otro campo de texto para ingresar el nombre del usuario que envía el mensaje.

Google recomienda utilizar el siguiente formato para las claves: el nombre de su paquete como prefijo, seguido de la clave misma. En este caso, puede estar seguro de la unicidad de la clave al interactuar con otras aplicaciones. Algo como esto:

Cadena estática final pública USUARIO = "ru.alexanderklimov.myapp.USER";

¿Quién incriminó al gato Vaska? Recuperamos el resultado

No siempre es suficiente simplemente pasar datos a otra actividad. A veces es necesario recuperar información de otra actividad cuando está cerrada. Si antes usáramos el método startActivity(Intención intención), entonces hay un método relacionado startActivityForResult(Intento, int RequestCode). La diferencia entre los métodos es parámetro adicional Código de solicitud. Básicamente es solo un número entero que puedes generar tú mismo. Es necesario para distinguir de quién provino el resultado. Digamos que tiene cinco pantallas adicionales y les asigna valores del 1 al 5, y usando este código puede determinar qué resultado necesita procesar. Puedes usar el valor -1, entonces será lo mismo que llamar al método Iniciar actividad(), es decir. no obtendremos ningún resultado.

Si usas el método iniciarActividadParaResultado(), entonces necesitas anular el método en tu código para recibir el resultado onActivityResult() y procesar el resultado. ¿Confundido? Veamos un ejemplo.

Digamos que eres detective. Se recibió información de que dos trozos de salchicha y otros productos fueron robados de la mesa de una persona influyente en un restaurante. Las sospechas recayeron sobre tres sospechosos: un cuervo, un maldito perro y el gato Vaska.

Uno de los visitantes proporcionó una serie de fotografías de su presumido iPhone:


También hay testimonio de otro testigo: Y Vaska escucha y come..

Crear un nuevo proyecto sherlock con dos actividades. En la primera pantalla habrá un botón para pasar a la segunda pantalla y una etiqueta de texto en la que se mostrará el nombre del ladrón.


Arriba