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?Cómo iniciar automáticamente una aplicación de Android?
Respuesta
Si por autostart quiere decir inicio automático en el inicio del 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.
hay que añadir una entrada de permiso manifiesta:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
(por supuesto, usted debe agregar el resto de los 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);
}}
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>
Editar su AndroidManifest.xml
para añadir RECEIVE_BOOT_COMPLETED
permiso
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
Editar su aplicación partes AndroidManifest.xml
por debajo de 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);
}
}
Funciona bien. ¡Gracias! –
Siempre me pongo aquí, para 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 repositorio).
agregar el permiso:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
Añadir 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 de 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
hacer acción después de reiniciar el sistema androide.
Por ejemplo MainActivity lanzamiento:
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);
}
}
- 1. ¿Cómo iniciar automáticamente el servicio en Android?
- 2. Complemento de Android Maven - Cómo iniciar una aplicación automáticamente después de implementarlo
- 3. Cómo iniciar una aplicación de Android con valgrind
- 4. Cómo iniciar/iniciar la aplicación en el arranque Android
- 5. Android para iniciar la aplicación
- 6. ¿Iniciar una aplicación/intención de Android desde una etiqueta NFC?
- 7. Android: Iniciar una actividad para una aplicación de terceros diferente
- 8. iniciar actividad de otra aplicación Android
- 9. Acerca de iniciar la aplicación Android desde una URL
- 10. Iniciar la aplicación de Android sin actividad
- 11. ¿Iniciar automáticamente la aplicación de Android después de cargarla en el teléfono?
- 12. ¿Qué tipo de aplicación permitió iniciar automáticamente en iPhone?
- 13. Cómo iniciar automáticamente el servicio de ventana
- 14. iniciar una aplicación desde la barra de notificaciones en android
- 15. Agite el dispositivo para iniciar una aplicación en Android
- 16. Cómo iniciar una aplicación mac sin una ventana de terminal
- 17. Cómo hacer que la aplicación de Android se actualice automáticamente
- 18. ¿Cómo puedo iniciar automáticamente una aplicación node.js en Amazon Linux AMI on aws?
- 19. ¿Cómo iniciar automáticamente un servicio web C#?
- 20. ¿Cómo iniciar una aplicación desde un navegador?
- 21. Cómo iniciar una aplicación Sencha Touch
- 22. Cómo iniciar una aplicación Sinatra usando "correr"
- 23. Android Bluetooth - Cómo iniciar el emparejamiento
- 24. ¿Cómo iniciar automáticamente servicios web al iniciar una instancia de Amazon EC2?
- 25. Iniciar AppFabric Cache Cluster automáticamente
- 26. Cómo iniciar la aplicación Android Calendar usando Intent (Froyo)
- 27. ¿Cómo actualizar automáticamente una aplicación sin ClickOnce?
- 28. Iniciar automáticamente perfiles de CPU con VisualVM
- 29. Iniciar una animaciónDibujar en Android
- 30. ¿Cómo puedo iniciar una instancia de una aplicación usando Python?
@AdamC Usted está equivocado - ver la respuesta de Prashast. –
@Rajapandian Propietario debe aceptar una respuesta si se trata de una solución de trabajo, o mencionar sus expectativas en los comentarios. Sería útil para otros. – naveejr
http: // karanbalkar.com/2014/01/autostart-application-at-bootup-in-android/ –