Cómo iniciar automáticamente una aplicación de Android?

No estoy seguro de cómo iniciar automáticamente una aplicación de Android después de que el emulador de Android complete su arranque. ¿Alguien tiene algún fragmento de código que me ayude?

Tienes que agregar una entrada de permiso de manifiesto:

 

(por supuesto, debe enumerar todos los demás permisos que utiliza su aplicación).

Luego, implemente la clase BroadcastReceiver, debería ser un ejecutable simple y rápido. El mejor enfoque es configurar una alarma en este receptor para activar su servicio (si no es necesario para mantenerlo funcionando correctamente, como escribió Prahast).

 public class BootUpReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); PendingIntent pi = PendingIntent.getService(context, 0, new Intent(context, MyService.class), PendingIntent.FLAG_UPDATE_CURRENT); am.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + interval, interval, pi); }} 

Luego, agrega una clase Receiver a tu archivo de manifiesto:

        

Edite su AndroidManifest.xml para agregar el permiso RECEIVE_BOOT_COMPLETED

  

Edite su parte de la aplicación AndroidManifest.xml para el siguiente permiso

       

Ahora escribe debajo en Actividad.

 public class BootUpReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { Intent i = new Intent(context, MyActivity.class); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(i); } } 

Si con BOOT_COMPLETED inicio automático al iniciar el teléfono, entonces debe registrar un BroadcastReceiver para el Intento BOOT_COMPLETED . Los sistemas Android transmiten esa intención una vez que se completa el arranque.

Una vez que reciba esa intención, puede iniciar un servicio que puede hacer lo que quiera hacer.

Tenga en cuenta que tener un servicio funcionando todo el tiempo en el teléfono es generalmente una mala idea, ya que consume los recursos del sistema, incluso cuando está inactivo. Debe iniciar su Servicio / aplicación solo cuando sea necesario y luego detenerlo cuando no sea necesario.

Siempre entro aquí, por este tema. Pondré mi código aquí para que yo (u otro) lo pueda usar la próxima vez. (Phew odio buscar en mi código de repository).

Agrega el permiso:

  

Agregar receptor y servicio:

         

Crear clase Launcher:

 public class Launcher extends Service { @Nullable @Override public IBinder onBind(Intent intent) { return null; } @Override public int onStartCommand(Intent intent, int flags, int startId) { new AsyncTask() { @Override protected Service doInBackground(Service... params) { Service service = params[0]; PackageManager pm = service.getPackageManager(); try { Intent target = pm.getLaunchIntentForPackage("your.package.id"); if (target != null) { service.startActivity(target); synchronized (this) { wait(3000); } } else { throw new ActivityNotFoundException(); } } catch (ActivityNotFoundException | InterruptedException ignored) { } return service; } @Override protected void onPostExecute(Service service) { service.stopSelf(); } }.execute(this); return START_STICKY; } } 

Crea una clase BootUpReceiver para realizar una acción después del reinicio de Android.

Por ejemplo, ejecute MainActivity:

 public class BootUpReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { Intent target = new Intent(context, MainActivity.class); target.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(target); } }