Italian Servizio iconizzato

KPmaster

Member
Licensed User
Longtime User
Ciao a tutti,
come faccio a creare un servizio che si avvii solo come icona nella notification area senza quindi che parta alcuna activity?
Chiamando StartService da Main e poi chiudendo Main con Activity.Finish, avviando l'app per alcuni istanti viene comunque visualizzata l'activity stessa, cosa che ovviamente non voglio accada.
 

KPmaster

Member
Licensed User
Longtime User
Ok, ma una volta resa trasparente l'Activity Main, come faccio a renderla nuovamente visibile premendo sull'icona?
 

imgsimonebiliato

Well-Known Member
Licensed User
Longtime User
Prova a modificare il manifest aggiungendo questo:


B4X:
<intent-filter >
    <action android:name="android.intent.action.main" />
    <category android:name="android.intent.category.LAUNCHER" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>)
AddPermission("android.permission.SET_WALLPAPER")
AddPermission("android.permission.SET_WALLPAPER_HINTS")
SetActivityAttribute(main, android:theme, @android:style/Theme.Wallpaper)

AddPermission("android.permission.WRITE_SETTINGS")
AddPermission("android.permission.ACCESS_SUPERUSER")
 

KPmaster

Member
Licensed User
Longtime User
Perdonami, ma la modifica che hai indicato va a settare la mia app come launcher, ed io non voglio questo.
 

MarcoRome

Expert
Licensed User
Longtime User
Ok, ma una volta resa trasparente l'Activity Main, come faccio a renderla nuovamente visibile premendo sull'icona?

Puoi fare qualcosa di simile
Nell'Activity Main
B4X:
Sub Process_Globals
'These variables can be accessed from all modules.
Dim visibile As Boolean
End Sub
Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    'Activity.LoadLayout("Layout1")
    If FirstTime Then
        visibile = False
    End If
    'Panel Trasparent
    panel1.Initialize("")
    Activity.AddView(panel1,0, 0, 100%x, 100%y)
    StartService(servizio)
    Activity.Finish
 
End Sub
 
Sub Activity_Resume
    If visibile = True Then panel1.Color = Colors.ARGB(0, 255,12,345 )
End Sub

Nel Servizio
B4X:
Sub Service_Create
    If Main.visibile = False Then
        Main.visibile = True
    End If
End Sub

quando cliccherai sull'icona passerà per Resume e troverà il visibile 0 true dove casmbierai la trasparenza del pannello o altro che hai inserito
 
Top