by Guest » 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:
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);
hier ist der Service
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;
}
...
}
...
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
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}");
}
Was habe ich übersehen?
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:
[code] 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]
hier ist der Service
[code][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]
hier ist das Manifest:
[code]
...
[/code]
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
[code] 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}");
}
[/code]
Was habe ich übersehen?