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 inicio. ¿Alguien tiene algún fragmento de código que me ayude?

Debe agregar una entrada de permiso de manifiesto:

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

(Por supuesto, debería enumerar todos los demás permisos que utiliza su aplicación).

A continuación, implementar BroadcastReceiver clase, debe ser simple y rápido ejecutable. El mejor enfoque es establecer una alarma en este receptor para despertar su servicio (si no es necesario mantenerlo funcionando ale el tiempo como Prahast escribió).

 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); }} 

A continuación, agregue una clase de receptor a su archivo de manifiesto:

  <receiver android:enabled="true" android:name=".receivers.BootUpReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> 

Edite su RECEIVE_BOOT_COMPLETED AndroidManifest.xml para agregar permiso RECEIVE_BOOT_COMPLETED

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

Edite su parte de la aplicación AndroidManifest.xml para más abajo Permiso

 <receiver android:enabled="true" android:name=".BootUpReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> 

Ahora escriba a continuación 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 por autostart quiere decir auto start en el inicio del teléfono, entonces debe registrar un BroadcastReceiver para el BOOT_COMPLETED intención. Los sistemas Android transmiten esa intención una vez que se ha completado el arranque.

Una vez que recibas esa intención puedes lanzar un Servicio que puede hacer lo que quieras hacer.

Tenga en cuenta, sin embargo, que tener un servicio que se ejecuta todo el tiempo en el teléfono es generalmente una mala idea, ya que se come los recursos del sistema, incluso cuando está inactivo. Debe lanzar su Servicio / aplicación sólo cuando sea necesario y luego detenerlo cuando no sea necesario.

Siempre me meto aquí, por este tema. Voy a poner mi código aquí para i (u otros) se puede utilizar la próxima vez. (Phew odio buscar en mi código de repositorio).

Agregue el permiso:

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

Agregar receptor y servicio:

  <receiver android:enabled="true" android:name=".BootUpReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> <service android:name="Launcher" /> 

Crear clase Lanzador:

 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<Service, Void, Service>() { @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; } } 

Crear clase BootUpReceiver para hacer la 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); } } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.