Aplicación de inicio automático después del arranque completado en Android

Quiero hacer una aplicación que tiene opción de inicio automático en su configuración. He hecho la actividad de las Configuraciones en mi aplicación que se deriva de PreferenceActivity y da CheckBoxPreference para la opción de inicio automático. Si la opción de inicio automático está habilitada, mi aplicación debería iniciarse cuando se complete el arranque del teléfono. Y si la opción de arranque automático está desactivada, entonces no debería iniciarse al arrancar.

Para lograr esto he implementado la clase derivada de BroadcastReceiver que recibe BOOT_COMPLETED intención, declarar receptor en AndroidManifest.xml y también dar permiso en AndroidManifest.xml.

En la aplicación también hay una clase derivada de Application y start service también del método onCreate de la clase derivada de la aplicación. Si declaro el receptor en AndroidManifest.xml entonces después de arrancar completado onCreate de mi aplicación llamada y después de que onReceive método de BroadcastReceiver llamado.

Ahora el problema es que mi aplicación se inicia en el arranque completado cada vez si el inicio automático está habilitado o deshabilitado. ¿Es posible no iniciar la aplicación cuando se desactiva el inicio automático?

Puede usar la preferencia compartida para almacenar un valor booleano para isAutoStartEnabled y comprobar este valor en BroadcastReciver, isAutoStartEnabled una intención sólo si es verdadera.

En su caso, el problema no es si recibe la emisión, sino quién recibe la emisión. La mejor de las suertes..

Espero que ayude..

Creo que desde Android 3.1 en adelante su BroadcastReceiver que recibe BOOT_COMPLETED intención su no va a funcionar. El usuario tiene que activar la aplicación interactuando con ella.

Por lo tanto, después de arrancar el dispositivo de toda la aplicación de terceros están mintiendo como una parada.

Y para actualmente su aplicación puede utilizar SharedPreferences para Auto-Start your application ..

ACTUALIZACIÓN: ( Sólo para la versión de Android por debajo de 3.1 para la versión superior funciona, pero usted tiene que interactuar con el usuario después de la aplicación de arranque completado en el dispositivo )

Necesitas usar un BroadcastReceiver con la intención de android.intent.action.BOOT_COMPLETED .

Añada el siguiente archivo de manifiesto:

 <receiver android:name="App_Receiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> 

Clase App_Receiver que implementa BoradcastReciever . Implemente el método onReceive() e inicie su actividad favorita desde su aplicación.

 public void onReceive(Context context, Intent intent) { // make sure you receive "BOOT_COMPLETED" // Here isAutoStartEnabled check sharedPreferences for Auto Start flag if ( isAutoStartEnabled ) { if ((intent.getAction() != null) && (intent.getAction().equals("android.intent.action.BOOT_COMPLETED"))) { // Start the service or activity } } 

Tienes que agregar el uso-permiso android.permission.RECEIVE_BOOT_COMPLETED en tu Manifiesto.

 final SharedPreferences sharedPreferences = getSharedPreferences("Application", MODE_PRIVATE); boolean isAutoStartEnabled = sharedPreferences.getBoolean("isAutoStartEnabled", false); if ( isAutoStartEnabled ) { startActivity(new Intent()); } 

Espero que esto te ayude

Esto funciona para mí:

  public class BootCompleteReceiver extends BroadcastReceiver { public static final String PREFS_NAME = "MyPrefsFile"; @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) { Log.d("boot completed", "boot completed caught"); Boolean autoRestart = false; SharedPreferences sp = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); autoRestart = sp.getBoolean("autoRestart", false); if (autoRestart){ Log.d("boot completed", "auto restart true"); Intent i = new Intent(context, WelcomeScreen.class); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(i); } } } 

}

  • Servicio de Android Cerrar inesperadamente
  • ¿Qué es más eficiente Broadcast Receiver o Handler?
  • ¿Puede la intención recibida por un BroadcastReceiver ser nula?
  • ¿Cómo crear una aplicación Android con sólo 1 broadcastreceiver?
  • ¿Es BroadcastReceiver.onReceive llamado exactamente una vez por sms?
  • Usuario apropiado del servicio de fondo / receptor de difusión
  • Preferencias compartidas dentro de broadcastreceiver
  • Broadcast receptor onReceive () recibiendo llamadas varias veces
  • Registrar un receptor de difusión de un servicio en un nuevo hilo
  • Prueba "real" del receptor de sms
  • Android ACTION_DATE_CHANGED difusión
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.