Wie führe ich eine Android App im Hintergrund aus?
Dieser code ausgeführt wird eine app automatisch nach dem Booten des Systems, aber die app schließt nach drücken der zurück-Taste.
Wenn die app ausgeführt wird, normalerweise, indem Sie auf das entsprechende icon. Es wird kontinuierlich ausgeführt werden, auch nach drücken der zurück-Taste oder die Ausführung anderer apps.
public class AutoBoot 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);
}
}
Meine Frage ist, wie man dieses automatische ausführen von code kontinuierlich ausgeführt werden, auch nach drücken der zurück-Taste oder die Ausführung anderer apps?
InformationsquelleAutor der Frage JBMagallanes | 2012-01-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie wahrscheinlich starten
Service
hier, wenn Sie möchten, dass Ihre Anwendung im Hintergrund laufen. Das ist Dienst in Android verwendet werden - läuft im hintergrund und tun, langjährigen Betrieb.UDPATE
Können Sie
START_STICKY
, um Ihren Service kontinuierlich ausgeführt.InformationsquelleAutor der Antwort Lalit Poptani
Starten einer Aktivität ist nicht der richtige Ansatz für dieses Verhalten. Stattdessen haben Sie Ihre BroadcastReceiver verwenden eine Absicht, einen Dienst zu starten, die können weiterhin so lange wie möglich laufen. (Siehe http://developer.android.com/reference/android/app/Service.html#ProcessLifecycle)
Siehe auch Persistent service
InformationsquelleAutor der Antwort Jonah
Als apps laufen im hintergrund sowieso. Ich gehe davon aus, was Ihr wirklich Frage ist, wie macht man apps, die Sachen tun, in den hintergrund. Die Lösung unten wird die app was im hintergrund nach dem öffnen der app und nach dem system neu gestartet wurde.
Unten habe ich einen link Hinzugefügt zu einem voll funktionsfähigen Beispiel (in der form von einem Android-Studio-Projekt)
Diesem Thema zu sein scheint, in den Bereich der Android-docs, und es scheint nicht zu einem umfassenden doc. Die Informationen verteilen sich über ein paar docs.
Den folgenden docs sagen Sie indirekt, wie dies zu tun:
https://developer.android.com/reference/android/app/Service.html
https://developer.android.com/reference/android/content/BroadcastReceiver.html
https://developer.android.com/guide/components/bound-services.html
In den Interessen, um Ihre Nutzung Anforderungen korrekt, der wichtigste Teil dieser oben genannten doc aufmerksam zu Lesen ist: #Binder, #Messenger und die Komponenten link:
https://developer.android.com/guide/components/aidl.html
Hier ist der link zu einem voll funktionsfähigen Beispiel-Android-Studio-format): http://developersfound.com/BackgroundServiceDemo.zip
Dieses Projekt wird starten eine Aktivität, welche die Bindung an einen service, der Implementierung des AIDL.
Diesem Projekt ist auch nützlich, um re-Faktor für die Zwecke von IPC in verschiedenen apps.
Ist dieses Projekt auch entwickelt, um automatisch gestartet, wenn Android neu gestartet (vorausgesetzt, die app wurde mindestens ein nach installation und die Anwendung ist nicht installiert auf SD-Karte)
Wenn diese app/Projekt läuft nach dem Neustart, dynamisch verwendet eine transparente Sicht, um es so Aussehen, dass keine app gestartet hat, aber der service von der zugehörigen app startet sauber.
Dieser code ist so geschrieben, dass es sehr einfach zu optimieren, zu simulieren, die eine geplante service.
Diesem Projekt entwickelt wird gemäß der oben docs und anschließend eine saubere Lösung.
Es ist jedoch ein Teil dieses Projektes, die nicht sauber sein: ich habe nicht gefunden, einen Weg, um einen Dienst zu starten, auf neu starten, ohne eine Aktivität. Wenn jeder von Euch diesen Beitrag Lesen, haben Sie eine saubere Art und Weise zu tun haben, diese bitte als Kommentar posten.
InformationsquelleAutor der Antwort user2288580