Italian Problema Kiosk Service

GaNdAlF89

Active Member
Licensed User
Longtime User
ciao a tutti!!
nella mia app ci sono due activity, una prima di login e poi un menu. ho utilizzato il kiosk service presente su questo forum, ma non funziona come vorrei nel mio caso...mi spiego meglio: quando dall'activity di login passo al menu, l'activity login va in pause e quindi si attiva il kiosk che mi riporta al login. vorrei invece che anche se il login va in pause, ma nel frattempo il menu è attivo, il kiosk non si attivasse, rilevando attiva l'activity del menu. vorrei quindi che il kiosk si attivasse quando "si esce" dall'applicazione, cioè quando tutte le activity sono in pause.

allego il codice dell'activity di login: (devo fare ciò anche nell'activity del menu?)
B4X:
Sub Activity_Resume

KioskService.limitNumberOfTicks = 0

End Sub

Sub Activity_Pause (UserClosed As Boolean)
   
If KioskService.limitNumberOfTicks >= 10 Then Return
If kiosk Then StartServiceAt(KioskService, DateTime.Now, False)
   
End Sub

mentre il codice del kiosk che ho modificato è questo:
B4X:
Sub Process_Globals

   Dim Notification As Notification
   Dim TimerKiosk As Timer
   Dim limitNumberOfTicks As Int
   
End Sub

Sub Service_Create

   If Notification.IsInitialized = False Then
      Notification.Initialize
      Notification.Icon = "icon"
      Notification.SetInfo("myapp", "myapp", "") 'la stringa finale la metto vuota per farlo funzionare con tutte le activity giusto??
      Notification.Sound = False
      Notification.Vibrate = False
   End If
   
   TimerKiosk.Initialize("TimerKiosk", 100)
   
End Sub

Sub Service_Start (StartingIntent As Intent)
   
   Service.StartForeground(1, Notification)
   
   If IsPaused(Main) AND IsPaused(Menu) Then 
      TimerKiosk.Enabled = True
   End If
   
End Sub

Sub Service_Destroy

   Service.StopForeground(1)
   TimerKiosk.Enabled = False
   
End Sub

qua sta il problema!!
B4X:
Sub TimerKiosk_Tick

   Dim inPause As String
   inPause=""
   
   'secondo l'ordine di apertura
   
   If IsPaused(Main) Then
      inPause="Main"
   End If
   If IsPaused(Impostazioni) Then
      inPause="Impostazioni"
   End If

        If inPause<>"" Then 'in questo modo attivo l'activity di livello superiore
      
      StartActivity(inPause)
      
      limitNumberOfTicks = limitNumberOfTicks + 1
      If limitNumberOfTicks >= 10 Then TimerKiosk.Enabled = False
      
   Else
      TimerKiosk.Enabled = False
   End If

illuminatemi perché sto impazzendo!!
 
Last edited:
Top