2012-05-03 12 views
33

Me gustaría iniciar mi aplicación cuando se inicia la tableta, de modo que la actividad principal de mi aplicación es lo primero que el usuario ve cuando inicia la tableta.
He leído sobre LauncherActivity pero no entiendo cómo usarlo.
¿Alguien me puede ayudar con sugerencias, enlaces o tutoriales para esto?
¿LauncherActivity es la mejor manera o hay alternativas?Cómo iniciar/iniciar la aplicación en el arranque Android

+0

Im que busca una funcionalidad similar, si tiene éxito favor compartir el código conmigo. – Anirudh

Respuesta

69

Estos línea de código tal vez útil para usted ...

Paso 1: establecer el permiso de AndroidManifest.xml

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

Paso 2: Añadir esta es la intención del filtro en el receptor,

<receiver android:name=".BootReciever"> 
    <intent-filter > 
     <action android:name="android.intent.action.BOOT_COMPLETED"/> 
    </intent-filter> 
</receiver> 

Paso 3: Ahora puede iniciar la primera actividad de su aplicación desde el método onReceive de la clase Receptor. .

public class BootReciever extends BroadcastReceiver 
{ 

@Override 
public void onReceive(Context context, Intent intent) { 
    // TODO Auto-generated method stub 
    Intent myIntent = new Intent(context, Tabs.class); 
    myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startActivity(myIntent); 
} 

} 
+1

thaks vishesh, morevore this steps mi actividad principal se extiende a LauncherActivity o simplemente Activity? –

+1

En lugar de que puede usar Receiver, eso funcionará bien ... compruebe la nueva línea de código actualizada ... –

+0

Tabs.class en el paso 3 debería ser mi actividad principal ??? –

11

Si desea iniciar la aplicación cuando se inicia las tabletas, es necesario escuchar a la acción BOOT_COMPLETED y reaccionar a ella. BOOT_COMPLETED es una Acción de difusión que se transmite una vez, una vez que el sistema ha terminado de arrancar. Puede escuchar esta acción creando un BroadcastReceiver que luego inicia su Actividad de inicio cuando recibe un intento con la acción BOOT_COMPLETED.

Añadir este permiso a su manifiesta:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

Crear un BroadcastReceiver personalizado en su proyecto:

public class MyBroadCastReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 

     if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){ 
      Intent i = new Intent(context, MyActivity.class); 
      i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startActivity(i); 
     } 
    } 
} 

A continuación, modifique el archivo de manifiesto mediante la adición de la BroadcastReceiver al Manifiesto:

<receiver android:name=".MyBroadcastReceiver"> 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
    </intent-filter> 
</receiver> 
+1

Intenté, no funciona, después de mostrar la pantalla de inicio normal, se llama a mi intento después de 2 segundos aprox. – Anirudh

2

Respuesta de @vishesh chandra es correcta. Pero en algunos dispositivos no funciona porque la aplicación se instaló en el almacenamiento externo de forma predeterminada. Asegúrese de especificar android: installLocation = "internalOnly", de lo contrario, no recibirá ninguna acción de Arranque completo si la aplicación está instalada en la tarjeta SD. Agregue esto a la etiqueta de la aplicación en el archivo manifest.xml y funcionará.

0

Me gustaría agregar un punto en esta pregunta que estaba enfrentando por un par de días. Probé todas las respuestas, pero esas no me funcionaron. Si está utilizando la versión 5.1 de Android, cambie esta configuración.

Si está utilizando la versión de Android 5.1, tiene que desactivar (Restringir para iniciar) desde la configuración de la aplicación.

configuración> aplicación> aplicación> Restringir a lanzar (des-seleccionar)

favor ver foto.

Image

Cuestiones relacionadas