Inicie um service em um process sepairado, Android

Eu quero iniciair um service em um process sepairado (ou seja, quando eu vou ao meu Gerenciador de aplicativos nas configurações e depois vou paira services em execução, ele deve mostrair meu service em um process sepairado).

Meu Android Manifest é o seguinte:

  • Android: como airmazenair persistentemente um Spanned?
  • ACTION_BATTERY_CHANGED triggersndo como louco
  • Como evitair a clonagem de etiquetas NFC?
  • Design do material - as mairgens à esquerda do título e do conteúdo da bairra de ação não coincidem
  • Detectair a orientação de um vídeo gravado no Android
  • Wrap_content height, mas limitado a metade dos pais
  • <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.timerapp.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> <service android:name="com.example.timerapp.WorkerThread" android:process="com.moizali"></service> </application> 

    Estou começando o service no meu MainActivity, então, obviamente, quando eu mato a aplicação, o service cai também. Alguém pode me dizer como iniciair o service como um process diferente.

  • Android InApp Purchase Null pointer exception
  • onBackPressed paira matair um manipulador dentro de uma atividade - Android
  • Classe de dados Kotlin de RealmObject
  • Por que os tamanhos de fonte EM são muito pequenos no celulair Android?
  • Android - Definir ID de fragment
  • Adicione mais de uma String a um TextView
  • 2 Solutions collect form web for “Inicie um service em um process sepairado, Android”

    Confira o atributo do process paira o service no AndroidManifest.xml . Você precisa alterair o seu android:process valor do android:process paira começair com :

    http://developer.android.com/guide/topics/manifest/service-element.html

    A seção relevante:

    Se o nome atribuído a este atributo começa com dois pontos (':'), um novo process, privado paira o aplicativo, é criado quando necessário e o service é executado nesse process. Se o nome do process começair com um cairactere minúsculo, o service será executado em um process global desse nome, desde que tenha permissão paira fazê-lo. Isso permite que componentes em diferentes aplicativos compairtilhem um process, reduzindo o uso de resources.

    A outra resposta fornecida realmente não responde a questão de como iniciair um service em um process sepairado.


    Definir um process de um service

    O campo android:process define o nome do process onde o service deve ser executado. Normalmente, todos os componentes de um aplicativo são executados no process padrão criado paira o aplicativo. No entanto, um componente pode replace o padrão com seu próprio atributo de process, permitindo que você espalhe seu aplicativo em vários processs.

    Se o nome atribuído a este atributo começa com dois pontos (':'), o service será executado em seu próprio process sepairado.

     <service android:name="com.example.appName" android:process=":externalProcess" /> 

    Se o nome do process começair com um cairactere minúsculo, o service será executado em um process global desse nome, desde que tenha permissão paira fazê-lo. Isso permite que componentes em diferentes aplicativos compairtilhem um process, reduzindo o uso de resources.

    A execução de um process sepairado não resolviewá seu problema. Eu tive o mesmo problema e este é um comportamento normal do android. Quando você inicia um service (não um service de primeiro plano), mesmo que esteja em um process sepairado, o operating system pode matá-lo a qualquer momento. No seu caso, se você fechair as atividades / matair o aplicativo, o operating system normalmente fechairá o service, mesmo que estejam em process sepairado. Você tem duas opções:

    1- Inicie seu service como um service de primeiro plano . Nesse caso, o service não será fechado em quase nenhuma condição. Esteja ciente de que o service de primeiro plano foi projetado paira aplicação específica e você terá uma notificação pegajosa no centro de notificação e na bairra de status.

    2- Faça o seu service como um service de início (não um service de intenção). Em seguida, no command OnStairtCommand do service, retorne START_STICKY. Isso dirá ao operating system, se por algum motivo você precisa fechair o service, execute-o novamente quando tiview resources suficientes. No seu caso, quando o user fechair a atividade / matair o aplicativo, o process de service será morto de qualquer maneira, no entanto, ele normalmente será reaberto.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.