Secondo me potresti chiudere prima l'App e poi il servizio vpn cosi non traballerebbe nulla.
MA se l'App è chiusa come fai a chiudere il servizio dopo la chiusura dell'App?
Semplice, richiami un servizio che parte dopo 2 o 3 secondi e chiudi l'App
' Chiama servizio che parte fra 2 secondi
StartServiceAt(NomeServizio,DateTime.Now+2000,True)
'Chiusura App
Dim jo As JavaObject
jo.InitializeContext
jo.RunMethod("finishAffinity", Null)
e nel servizio
Sub Service_Start (StartingIntent As Intent)
Service.StopAutomaticForeground 'Starter service can start in the foreground state in some edge cases.
Dim i As Intent
i.Initialize(i.ACTION_MAIN, "")
i.SetComponent("de.blinkt.openvpn/.api.DisconnectVPN")
i.PutExtra("de.blinkt.openvpn.shortcutProfileName", "VPN_Telecontrollo")
StartActivity(i)
ToastMessageShow("Disconnessione VPN in corso...",False)
End Sub
io addirittura feci (in senso stretto) un altra cosa nel mio caso. La mia app la trasformai in Floating StandOut (cioè volante con un bottone che stava sopra le altre app) e quindi rimaneva aperta ma non si vedeva più fingendo di essere chiusa e operavo dell'esterno nell'activity.... usando
questa libreria, ma è complicato
P.S. Credo che con Android 11 non funzionerebbe perchè il servizio non può aprire App esterne se non attivi
Draw On Top