In meiner App habe ich eine Aktivität, von der ich einen Dienst starten möchte Kann mir irgendein Körper helfen?Starten Sie einen Dienst von der Aktivität
Antwort
Die Anwendung kann den Dienst mit Hilfe der Methode Context .startService starten. Die Methode ruft die onCreate-Methode des Service auf, wenn der Service noch nicht erstellt wurde. Sonst wird die onStart Methode aufgerufen. Hier ist der Code:
Intent serviceIntent = new Intent();
serviceIntent.setAction("com.testApp.service.MY_SERVICE");
startService(serviceIntent);
Die API Demos haben einige Beispiele, die Dienste starten.
Verwenden Sie eine Context.startService() -Methode.
Und lesen Sie this.
Fügen Sie diese in Ihrem Code
Intent serviceIntent = new Intent(this, ServiceName.class);
startService(serviceIntent);
Vergessen Sie nicht, Service-Tag in AndroidManifest.xml Datei
<service android:name="com.example.ServiceName"></service>
Vom Android official documentation hinzuzufügen:
Vorsicht: Ein Dienst wird im selben Prozess ausgeführt wie die Anwendung in , für die er deklariert ist, und im Hauptthread dieser Anwendung, standardmäßig . Wenn also Ihr Dienst intensive oder blockierende Vorgänge ausführt, während der Benutzer mit einer Aktivität aus derselben Anwendung interagiert, wird der Dienst durch die Leistung verlangsamt. Um Auswirkungen auf die Anwendungsleistung zu vermeiden, sollten Sie einen neuen Thread innerhalb des Dienstes starten.
Zuerst erstellen Sie den Dienst von Android Manifest.xml
Datei (d. H. Aus der Anwendung Registerkarte) und geben Sie einen Namen zu ihm.
Auf der Aktivität auf einem Ereignisse wie klicken oder tippen Sie den Code aus dem Dienst gehören:
public void onClick(View v)
{
startService(new Intent(getApplicationContext(),Servicename.class));
}
Wenn Sie das Laufen oder gestarteten Dienst dann um diesen Code stoppen wollen:
public void onclick(View v)
{
stopService(new Intent(getApplicationContext,Servicename.class));
}
Wenn Wenn Sie einen Dienst starten und im Hintergrund ausgeführt werden möchten, verwenden Sie START_STICKY in Ihrem entsprechenden Dienst.
Sie servvice mit auf Booten starten können, auch
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
und Empfänger schaffen,
<receiver android:name=".auth.NotificationBroadcast" android:enabled="true" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
In brodcast Empfänger hinzufügen,
@Override
public void onReceive(Context context, Intent intent) {
System.out.println("BroadcastReceiverBroadcast--------------------ReceiverBroadcastReceiverBroadcastReceiver----------------BroadcastReceiver");
if (intent != null) {
String action = intent.getAction();
switch (action) {
case Intent.ACTION_BOOT_COMPLETED:
System.out.println("Called on REBOOT");
// start a new service
startService(new Intent(getApplicationContext(),Servicename.class));
break;
default:
break;
}
}
}
und Ihr Service ist wie,
- 1. Verzögerung beim Starten der Aktivität vom Dienst
- 2. Stoppen Sie einen Dienst von Aktivität
- 3. Starten Sie einen Windows-Dienst und starten Sie Cmd
- 4. Starten Sie einen deaktivierten Windows-Dienst?
- 5. Starten Sie die Android-Anwendung ohne Hauptaktivität und starten Sie den Dienst beim Starten der Anwendung
- 6. Starten Sie automatisch einen Windows-Dienst bei der Installation
- 7. Dienst von einem anderen Dienst starten
- 8. Starten Sie den Systemd-Dienst von C/C++ oder rufen Sie einen D-Bus-Dienst
- 9. Starten PreferenceDialog von Aktivität
- 10. So starten Sie den Dienst von Fragmenten
- 11. Starten von Aktivität von Widget
- 12. Dienst kann die Aktivität anderer App nicht starten
- 13. So starten Sie einen Dienst (`IServiceCollection`) beim Start
- 14. So installieren und starten Sie einen Windows-Dienst mit WiX
- 15. So verschieben Sie Bluetooth-Aktivität in einen Dienst
- 16. Starten der Aktivität in FrameLayout
- 17. So starten Sie eine Aktivität über einen Broadcast-Empfänger
- 18. Starten Sie einen Dienst in einem separaten Prozess Android
- 19. So verschieben Sie eine Aktivität in einen Dienst
- 20. Aktivität von ViewHolder starten onclick
- 21. Starten Sie den GPS-Dienst beim Neustart
- 22. Starten eine Aktivität von preferences.xml
- 23. Starten der Aktivität durch Benachrichtigung: Vermeiden von doppelten Aktivitäten
- 24. Android-Dienst nicht starten
- 25. Aktivität für Ergebnis von IME starten
- 26. Chef - starten oder starten Sie den Dienst nach Bedarf neu
- 27. Starten Sie eine Remote-Windows-Dienst mit der Batch-Datei
- 28. Klare Aktivität Stack und starten Sie neue Aktivität in Android
- 29. Android: Starten Sie eine Aktivität aus einer ausführbaren Aktivität (NullPointerException)
- 30. Starten von Docker Dämon aus Java-Dienst
können Sie mir geben, wie man s beginnt Ervicein Thread-Code –