رفتن به مطلب
  • 0

سرویس برنامه


msajad

سوال

سلام من به یه مشکل برخوردم

من یه سرویس درست کردم که میاد ساعتی رو برسی میکنه اگه ساعت برابر زمان مورد نظر ما بود نوتیفیکیشن میده

اینم کد هام


Sub Service_Create
timer1.Initialize("timer1",60000)
noti.Initialize
noti.Icon="icon"
End Sub

Sub Service_Start (StartingIntent As Intent)
timer1.Enabled=True
End Sub

Sub timer1_Tick

If  DateTime.GetHour(DateTime.Now) = 12 AND  DateTime.GetMinute(DateTime.Now) = 12 Then 
noti.SetInfo("text","text",Null)
noti.Notify(1)
End If

End Sub

از صفحه اصلی با StartService این سرویس رو صدا زدم

حالا اگه صفحه روشن باشه نوتیفیکیشن میاد اگه خاموش باشه نمیاد(خیلی مهمه برام)

درضمن سرویس استکی هم هست

لینک ارسال
به اشتراک گذاری در سایت های دیگر

13 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

دوستان کسی بلده این مشکلو حل کنه؟

شما تایمر رو کلا وردار... کد نوتیفیکیشن رو تو Service_Start بزار آخرشم کد آقا آرتا ولی نه واسه هر ثانیه...واسه هر15 یا 30 یا هرچند زیر 1 دقیقه بزار...خود سرویست مثه تایمر میشه دیگه....اینجوری احتمال کرشش کمه و شاید Ok شه .. اینجوری :


Sub Service_Start (StartingIntent As Intent)


If  DateTime.GetHour(DateTime.Now) = 12 AND  DateTime.GetMinute(DateTime.Now) = 12 Then 
noti.SetInfo("text","text",Null)
noti.Notify(1)


StartServiceAt("",DateTime.Now + 15*1000 ,True)




End Sub

لینک ارسال
به اشتراک گذاری در سایت های دیگر

شما تایمر رو کلا وردار... کد نوتیفیکیشن رو تو Service_Start بزار آخرشم کد آقا آرتا ولی نه واسه هر ثانیه...واسه هر15 یا 30 یا هرچند زیر 1 دقیقه بزار...خود سرویست مثه تایمر میشه دیگه....اینجوری احتمال کرشش کمه و شاید Ok شه .. اینجوری :


Sub Service_Start (StartingIntent As Intent)


If  DateTime.GetHour(DateTime.Now) = 12 AND  DateTime.GetMinute(DateTime.Now) = 12 Then 
noti.SetInfo("text","text",Null)
noti.Notify(1)


StartServiceAt("",DateTime.Now + 15*1000 ,True)




End Sub

امین جان کد شما هم جواب نداد

یعنی تا الان کسی با این مشکل برنخورده؟

دوستان لطفا کمک کنید*badjens*

لینک ارسال
به اشتراک گذاری در سایت های دیگر

من الان کد خودتو تست کردم جواب گرفتم :S

توس سرویس :

Sub Process_Globals
   Dim timer1 As Timer
   Dim noti As Notification
End Sub
Sub Service_Create
   timer1.Initialize("timer1",30000)
   noti.Initialize
   noti.Icon = "icon"
   noti.Light = True
noti.Vibrate = false
   noti.OnGoingEvent = True
   noti.autocancel = True
End Sub

Sub Service_Start (StartingIntent As Intent)
   timer1.Enabled = True
End Sub

Sub Service_Destroy

End Sub


Sub timer1_tick
If  DateTime.GetHour(DateTime.Now) = 14 AND  DateTime.GetMinute(DateTime.Now) = 31 Then 
noti.SetInfo("text","text",Null)
noti.Notify(1)
End If
End Sub

توی Activity هم :

Sub Activity_Create(FirstTime As Boolean)
   StartService("servicetime")
End Sub

شاید تو داری ساعت رو اشتباه میزنی *nose*

لینک ارسال
به اشتراک گذاری در سایت های دیگر

من الان کد خودتو تست کردم جواب گرفتم :S

توس سرویس :

Sub Process_Globals
   Dim timer1 As Timer
   Dim noti As Notification
End Sub
Sub Service_Create
   timer1.Initialize("timer1",30000)
   noti.Initialize
   noti.Icon = "icon"
   noti.Light = True
noti.Vibrate = false
   noti.OnGoingEvent = True
   noti.autocancel = True
End Sub

Sub Service_Start (StartingIntent As Intent)
   timer1.Enabled = True
End Sub

Sub Service_Destroy

End Sub


Sub timer1_tick
If  DateTime.GetHour(DateTime.Now) = 14 AND  DateTime.GetMinute(DateTime.Now) = 31 Then 
noti.SetInfo("text","text",Null)
noti.Notify(1)
End If
End Sub

توی Activity هم :

Sub Activity_Create(FirstTime As Boolean)
   StartService("servicetime")
End Sub

شاید تو داری ساعت رو اشتباه میزنی *nose*

اقای ایزدی 30 بار تست کردم زمانی که صفحه روشنه کد کار میکنه ولی اگه خاموش باشه کار نمیکنه روی 5 تا گوشی هم تست کردم

اگه صفحه خاموش شد دیگه کار نمیکنه(screen off)

لینک ارسال
به اشتراک گذاری در سایت های دیگر

یه اکتیوتی کیپرس براش بزار که وقتی کلید برگشت رو میزنی دوباره استارت کنه سرویس رو

یا این که سرویس رو به حالت پایدار در بیاری کدشو میگردم برات پیدا میکنم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

یه اکتیوتی کیپرس براش بزار که وقتی کلید برگشت رو میزنی دوباره استارت کنه سرویس رو

یا این که سرویس رو به حالت پایدار در بیاری کدشو میگردم برات پیدا میکنم

فکر کنم درست متوجه نشدی سرویس پایدار هست و کار هم می کنه اما فقط زمانی که صفحه روشه ولی همین که صفحه گوشی خاموش میشه دیگه وظیفه خودش انجام نمیده

لینک ارسال
به اشتراک گذاری در سایت های دیگر

#Region  Service Attributes 
   #StartAtBoot: false
   #StartCommandReturnValue: android.app.Service.START_STICKY
#End Region

تست کن ببین جواب میگیری؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

#Region  Service Attributes 
   #StartAtBoot: false
   #StartCommandReturnValue: android.app.Service.START_STICKY
#End Region

تست کن ببین جواب میگیری؟

چرا کسی توجه نمیکنه

1-سرویس به خوبی کار میکنه حتی بیرون برنامه

2-سرویس استکی هست

3-سرویس همیشه در حال اجراست و بسته نمیشه

4-هنگام خاموش شدن صفحه گوشی سرویس وظایف خود را انجام نمیده

لینک ارسال
به اشتراک گذاری در سایت های دیگر

من بسیار متعجبم که شما چطور داره براتون وقتی Screen OFF هست جواب میده

همین الان بنده تست کردم هم Screen OFF بود و هم Lock ولی باز Notification رو داد *sigar*

ممکنه سورس کدتون رو پیوست کنید؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

شما بیا توی رویداد Create این کد رو بنویس :

StartServiceAt("",DateTime.Now + 1*DateTime.TicksPerSecond,True)

حالا چرا چون ما توی Create یه بار فراخوانی میشه و DuringSleep رو فعال میکنه همون ارگومانی که ما True قرار دادیم که در حین خاموش شدن صفحه هم عمل میکنه.

تست نکردم همینچور یهویی به ذهنم خطور کرد.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...