یه سورس نوشتم که از یک اکتیویتی تشکیل میشه که وقت باز شدن یک سرویس از نوع استیکی رو فراخوانی میکنه.
در سرویس یه تایمر اینیشیالایز و Enable میشه که هر یک دقیه میاد زمان رو در یک فایل به نام Loge.txt داخل rootexternal که همون صفحه اول فایل منیجرتونه ذخیره میکنه.
مثلا اگه تایمر در روز 22 میلادی ساعت 8 و 27 دقیقه اجرا بشه در لوگ نوشته میشه.: TIME: 22/8/27
حالا مشکل اینجاست که وقتی گوشی به حالت Sleep میره، یعنی صفحه گوشی خاموش میشه تایمر دیگه کار نمیکنه و به لوگ دستگاه چیزی اضافه نمیکنه.
اولا که لطف کنین و برنامه رو روی گوشی هاتون نصب و اجرا کنین تا مطمعن بشم مشکل مربوط به یه گوشی یا ورژن خاص اندروید نیست.
ثانیا اگه راه کاری دارید ممنون میشم کمکی بکنید.
بعد از نزدیک به 3 ماه دیباگ کردن برنامه فهمیدم این مشکل برناممه. مشکل خیلی بزرگی برای برنامه هاییه که در پس زمینه باید کاری رو انجام بدن.
اینم کد های سرویس:
#Region Service Attributes
#StartCommandReturnValue: android.app.Service.START_STICKY
#StartAtBoot: true
#End Region
Sub Process_Globals
Dim Tm As Timer
Dim Notification1 As Notification
End Sub
Sub Service_Create
Tm.Initialize("Tm", 60000)
End Sub
Sub Service_Start (StartingIntent As Intent)
Tm.Enabled = True
DoEvents
End Sub
Sub Service_Destroy
StartServiceAt("", DateTime.Now + (5 * DateTime.TicksPerSecond), True)
End Sub
Sub Tm_Tick
'this function will save the ticking time into the file "Loge.txt" in rootexternel directory.'
If File.Exists(File.DirRootExternal, "Loge.txt") Then
Dim clog As List
clog.Initialize
clog = File.ReadList(File.DirRootExternal, "Loge.txt")
File.Delete(File.DirRootExternal, "Loge.txt")
clog.Add("TIME:" & DateTime.GetDayOfMonth(DateTime.Now) & "/" & DateTime.GetHour(DateTime.Now) & "/" & DateTime.GetMinute(DateTime.Now))
File.WriteList(File.DirRootExternal, "Loge.txt", clog)
Else
Dim clog As List
clog.Initialize
clog.Add("TIME:" & DateTime.GetDayOfMonth(DateTime.Now) & "/" & DateTime.GetHour(DateTime.Now) & "/" & DateTime.GetMinute(DateTime.Now))
File.WriteList(File.DirRootExternal, "Loge.txt", clog)
End If
DoEvents
End Sub
جنبه آموزشی هم برای تازه کارا داره این سورس چون روش صحیح نوشتن یک StickyService همینه.
رمز هم نگذاشتم واسه دانلود تا سر راه همکاری دوستان سنگی نیاد. :-D
سوال
jeqele 563
سلام دوستان.
یه سورس نوشتم که از یک اکتیویتی تشکیل میشه که وقت باز شدن یک سرویس از نوع استیکی رو فراخوانی میکنه.
در سرویس یه تایمر اینیشیالایز و Enable میشه که هر یک دقیه میاد زمان رو در یک فایل به نام Loge.txt داخل rootexternal که همون صفحه اول فایل منیجرتونه ذخیره میکنه.
مثلا اگه تایمر در روز 22 میلادی ساعت 8 و 27 دقیقه اجرا بشه در لوگ نوشته میشه.: TIME: 22/8/27
حالا مشکل اینجاست که وقتی گوشی به حالت Sleep میره، یعنی صفحه گوشی خاموش میشه تایمر دیگه کار نمیکنه و به لوگ دستگاه چیزی اضافه نمیکنه.
اولا که لطف کنین و برنامه رو روی گوشی هاتون نصب و اجرا کنین تا مطمعن بشم مشکل مربوط به یه گوشی یا ورژن خاص اندروید نیست.
ثانیا اگه راه کاری دارید ممنون میشم کمکی بکنید.
بعد از نزدیک به 3 ماه دیباگ کردن برنامه فهمیدم این مشکل برناممه. مشکل خیلی بزرگی برای برنامه هاییه که در پس زمینه باید کاری رو انجام بدن.
اینم کد های سرویس:
جنبه آموزشی هم برای تازه کارا داره این سورس چون روش صحیح نوشتن یک StickyService همینه.
رمز هم نگذاشتم واسه دانلود تا سر راه همکاری دوستان سنگی نیاد. :-D
http://s6.picofile.com/file/8185141918/teste_timer.rar.html
لینک ارسال
به اشتراک گذاری در سایت های دیگر
17 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.