¿Cómo inicio mi aplicación al inicio?
Intenté usar el código de muestra en este enlace, pero parece anticuado y no funcionó. Entonces, ¿qué cambios debo hacer y qué archivos para que mi aplicación se inicie automáticamente cuando Android termine de arrancar?
- Permiso de Asus (administrador de autostart), miui (centro de seguridad)
- Iniciar la aplicación Android sin actividad
- Sharedpreference con la pantalla de bienvenida
- If (session.isOpen ()), inicio de sesión de facebook en android siempre devuelve false
- Boot complete broadcast procesado en serie en KITKAT 4.4.2 <ACTION_BOOT_COMPLETED> <ActivityManagerService.java>
- Cambiar el color de la ventana de inicio de la aplicación
- Cómo agregar acceso directo a la pantalla de inicio en android mediante programación
- Proteger con contraseña la aplicación al iniciar
- Reanudar la actividad en Android
- Ir a la pantalla de inicio programáticamente
- El selector de inicio de Android / lanzador no muestra la opción "usar de forma predeterminada para esta acción"
- Añadir acceso directo a la aplicación de Android En la pantalla principal, haga clic en el botón
- ¿Cómo puedo activar automáticamente el inicio automático de mis aplicaciones en el menú de seguridad Xiaomi Mi4i?
Primero, necesitas el permiso en tu AndroidManifest.xml
:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
Además, en su AndroidManifest.xml
, defina su servicio y escuche la acción BOOT_COMPLETED :
<service android:name=".MyService" android:label="My Service"> <intent-filter> <action android:name="com.myapp.MyService" /> </intent-filter> </service> <receiver android:name=".receiver.StartMyServiceAtBootReceiver" android:label="StartMyServiceAtBootReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver>
A continuación, debe definir el receptor que obtendrá la acción BOOT_COMPLETED e iniciar su servicio.
public class StartMyServiceAtBootReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) { Intent serviceIntent = new Intent(context, MyService.class); context.startService(serviceIntent); } } }
Y ahora su servicio debe estar funcionando cuando el teléfono se enciende.
Esta es la forma de hacer que una actividad se inicie después de reiniciar el dispositivo Android:
Inserte este código en el archivo AndroidManifest.xml
, dentro del elemento <application>
( no dentro del elemento <activity>
):
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <receiver android:enabled="true" android:exported="true" android:name="yourpackage.yourActivityRunOnStartup" android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.QUICKBOOT_POWERON" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver>
A continuación, cree una nueva clase yourActivityRunOnStartup
(que coincida con el android:name
especificado para el elemento <receiver>
en el manifiesto):
package yourpackage; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class yourActivityRunOnStartup extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) { Intent i = new Intent(context, MainActivity.class); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(i); } } }
Nota: La llamada i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Es importante porque la actividad se inicia desde un contexto fuera de la actividad. Sin esto, la actividad no se iniciará.
Además, los valores android:enabled
, android:exported
y android:permission
en la etiqueta <receiver>
no parece obligatorio. La aplicación recibe el evento sin estos valores. Vea el ejemplo aquí .
Escucha el ACTION_BOOT_COMPLETE y haz lo que necesites desde allí. Hay un fragmento de código aquí.
Actualizar:
El enlace original en la respuesta está abajo, por lo que basado en los comentarios, aquí está vinculado código, porque nadie se perdería el código cuando los enlaces están hacia abajo.
En AndroidManifest.xml (application-part):
<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>
…
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
…
public class BootUpReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { Intent i = new Intent(context, MyActivity.class); //MyActivity can be anything which you want to start on bootup... i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(i); } }
Además, puedes usar una aplicación como AutoStart si no quieres modificar el código, para iniciar una aplicación Android en el inicio: https://play.google.com/store/apps/details?id=com.autostart
La solución de Sean no funcionó para mí inicialmente (Android 4.2.2). Tuve que añadir una actividad simulada para el mismo proyecto de Android y ejecutar la actividad manualmente en el dispositivo al menos una vez. Entonces la solución del Sean comenzó a trabajar y el BroadcastReceiver fue notificado después de reinicios subsecuentes.
Otro enfoque es usar android.intent.action.USER_PRESENT en lugar de android.intent.action.BOOT_COMPLETED para evitar bajadas durante el proceso de arranque. Pero esto sólo es cierto si el usuario ha habilitado la pantalla de bloqueo – de lo contrario esta intención nunca se transmite.
https://funwithdc.wordpress.com/2012/02/12/the-problem-with-androids-action_user_present-intent/
- No se pudo resolver: com.google.firebase: firebase-core: 9.0.0
- Seleccione todo el texto dentro de EditText cuando se enfoque