2010-08-20 17 views
10

Piszę aplikację na Androida, która musi być zawsze uruchomiona w tle, dopóki użytkownik nie wyjdzie z menu aplikacji. Ale teraz zauważam, że w Androidzie po pewnym czasie moja aplikacja jest zatrzymywana sama, bez interwencji użytkownika.Jak zapewnić nieprzerwane działanie aplikacji dla systemu Android?

Każdy pomysł, jak upewnić się, że moja aplikacja będzie zawsze działać w tle?

+1

zatrzymuje go, gdy Pamięć się skończyła i potrzebuje jej do innej aplikacji. –

+2

Prosimy o zaznaczenie niektórych pytań za pomocą zaakceptowanych odpowiedzi, aby inni mogli z nich korzystać. –

Odpowiedz

0

Na swojej działalności, w oczywisty xml, umieścić:

androida: uporczywy = "true"

+1

Z [dokumentacja] (http://developer.android.com/guide/topics/manifest/application-element.html#persistent): Aplikacje nie powinny normalnie ustawiać tej flagi; Tryb utrwalania jest przeznaczony tylko dla niektórych aplikacji systemowych. –

+1

Moja odpowiedź jest poprawna pod względem technicznym i spełnia wymagania plakatu: "musi być zawsze uruchomiony w tle". –

+12

Ustawianie rzeczy trwałych [działa tylko w aplikacjach dołączonych do obrazu systemu] (https://groups.google.com/d/msg/android-developers/2E10ZSnaK2Q/csXFYPchqcIJ). –

7

Jeśli trzeba uruchomić w każdym czasie, spojrzeć na Service i startForeground. Jeśli możesz pozwolić swojemu Service umrzeć, ale zostaniesz ponownie uruchomiony, spójrz na onStartCommand i START_STICKY.

+0

Robię to samo. działa dobrze w nexusie 5. Ale w usłudze Xiaomi zostaje zabity, gdy tylko moja aplikacja zabija. – Abhi

0

AndroidMainfest.xml wygląda to z 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

Działa tylko w aplikacjach dołączonych do obrazu systemu. Zobacz http://stackoverflow.com/questions/3529834/how-to-keep-a-android-app-always-running#comment6799178_5811609 –

0

„Podczas gdy dokumentacja rozwój aplikacji ma wyjaśnić rolę Androidzie: trwałe, stosowanie tego atrybutu jest zarezerwowana dla aplikacji, które są wbudowane w AOSP „

. - wbudowany Android

Powiązane problemy