Der Dienst startet nicht in einem separaten Prozess
Posted: 11 Jan 2025, 09:25
Ich muss einen Vordergrunddienst erstellen, der in einem separaten Prozess ausgeführt wird. Aber aus irgendeinem Grund läuft es unabhängig von den Parametern im selben Prozess wie die Hauptaktivität. Wenn ich einen isolierten Prozess einstelle, wird er überhaupt nicht ausgeführt.
So starte ich den Dienst:
hier ist der Service
hier ist das Manifest:
Ich dachte auch, dass Environment.ProcessId möglicherweise nicht den Prozess des Dienstes zurückgibt, also habe ich versucht, alle Prozesse abzurufen, aber es gibt nur den Hauptprozess der App zurück
Was habe ich übersehen?
So starte ich den Dienst:
Code: Select all
Log.Debug(nameof(MainActivity), $"main ProcessId: {System.Environment.ProcessId}");
Android.Content.Intent intent = new Android.Content.Intent(BaseContext, typeof(FfmpegService));
Android.App.Application.Context.StartForegroundService(intent);
Code: Select all
[Service(ForegroundServiceType = Android.Content.PM.ForegroundService.TypeSpecialUse)]
public class FfmpegService : Service
...
public override StartCommandResult OnStartCommand(Intent intent, StartCommandFlags flags, int startId)
{
Log.Debug(nameof(FfmpegService), $"service ProcessId: {System.Environment.ProcessId}");
...
return StartCommandResult.Sticky;
}
...
}
...
Code: Select all
...
Code: Select all
ActivityManager activityManager = (ActivityManager)this.GetSystemService(Context.ActivityService);
var pidsTask = activityManager.RunningAppProcesses;
for (int i = 0; i < pidsTask.Count; i++)
{
Log.Debug(nameof(MainActivity), $"{pidsTask[i].ProcessName} ProcessId: {pidsTask[i].Uid}");
}