2010-08-20 19 views
10

Estoy escribiendo una aplicación para Android que siempre se debe ejecutar en segundo plano hasta que el usuario salga del menú de la aplicación. Pero ahora noto que en Android después de un tiempo mi aplicación se detiene sola sin la intervención del usuario.¿Cómo mantener una aplicación de Android ejecutándose indefinidamente?

¿Alguna idea de cómo asegurarme de que mi aplicación siempre se ejecutará en segundo plano?

+1

se detiene cuando la memoria ha terminado y la necesita para otra aplicación –

+2

Por favor, considere marcar algunas de sus preguntas con respuestas aceptadas para que otros puedan beneficiarse de ellas. –

Respuesta

0

Para su actividad, en el manifiesto XML, poner:

androide: persistente = "true"

+1

De la [documentación] (http://developer.android.com/guide/topics/manifest/application-element.html#persistent): Normalmente, las aplicaciones no deberían establecer esta marca; el modo de persistencia está destinado solo para ciertas aplicaciones del sistema. –

+1

Mi respuesta es técnicamente precisa y cumple con los requisitos del afiche "siempre debe estar ejecutándose en segundo plano". –

+12

Configuración persistente [solo funciona para aplicaciones incluidas con la imagen del sistema] (https://groups.google.com/d/msg/android-developers/2E10ZSnaK2Q/csXFYPchqcIJ). –

7

Si necesita para funcionar en todo momento, mirar en un Service y startForeground. Si puede dejar que su Service muera pero se reinicie, consulte onStartCommand y START_STICKY.

+0

Estoy haciendo lo mismo. trabajando bien en Nexus 5. Pero en el servicio Xiaomi se está matando tan pronto como mi aplicación está matando. – Abhi

0

AndroidMainfest.xml se parece a esto con presistent = true:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.test" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="7" 
     android:targetSdkVersion="7" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" android:persistent="true"> 
     <activity 
      android:name="com.example.test.MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 
+1

Solo funciona para aplicaciones incluidas con la imagen del sistema. Ver http://stackoverflow.com/questions/3529834/how-to-keep-a-android-app-always-running#comment6799178_5811609 –

0

“Si bien la documentación de desarrollo de aplicaciones hace explicar el papel de androide : persistente, el uso de ese atributo se reserva para aplicaciones que están construidos dentro de los PSE “

-. Embedded Android

Cuestiones relacionadas