PDA

View Full Version : شروع یک اکتیویتی بعد از یک زمان معین شده



godofphp
پنج شنبه 12 شهریور 1394, 10:01 صبح
سلام
من یک برنامه نوشتم که توش کاربر یک عدد رو وارد میکنه و این عدد نشان دهنده ی ساعت هست مثلا 10 ساعت 20 ساعت
و برنامه ی من یک سرویس رو شروع میکنه که با هندلر یک مقداری رو میشماره هر ثانیه یکبار و هر سری هم با این عددی که کاربر وارد کرده مقایسه میکنه
اگه شمارنده ی من به اندازه ی عددی که کاربر زده رسیده باشه برنامه یک اکتیویتی رو شروع میکنه تا اینجا مشکلی نیست ولی وقتی گوشی خاموش میشه طبیعتا سرویس هم کیل میشه و همچنین هندلر من شمارندش کار نمیکنه ، پس ثانیه هایی که وقتی گوشی خاموشه محاسبه نمیشه
برای جلوگیری از این کار باید چیکار کرد ؟

#root#
پنج شنبه 12 شهریور 1394, 10:32 صبح
با توجه به اطلاعات بنده برای رسیدن به هدفتون راه درستی رو انتخاب نکردید،
می بایست از AlarmManager استفاده بکنید (بدون نیاز به Service و Handler)،
با Broadcast هم بعد از روشن شدن دستگاه (‌‌BOOT_COMPLETED) ، از نو Alarm رو ثبت کنید.

godofphp
چهارشنبه 18 شهریور 1394, 08:20 صبح
با توجه به اطلاعات بنده برای رسیدن به هدفتون راه درستی رو انتخاب نکردید،
می بایست از AlarmManager استفاده بکنید (بدون نیاز به Service و Handler)،
با Broadcast هم بعد از روشن شدن دستگاه (‌‌BOOT_COMPLETED) ، از نو Alarm رو ثبت کنید.

ممنونم
برای حل شدن مشکلم
ابتدا یک برودکست تعریف کردم برای روشن شدن دستگاه که وقتی رخ بده یک سرویس رو استارت کنه
برای مشکل زمانی هم با استفاده از کلاس cleander اندروید روز سال رو (مثلا روز 245 ام) گرفتم و ضرب در 24 کردم و سپس ساعت الان رو گرفتم و با اون جمع کردم
و اینطوری یک عددی بدست اومد که ساعت گذشته شده از اول سال رو نشون میده
این رو توی sharedpref ذخیره کردم و توی سرویسم دوباره ساعت سال رو به همین روش فراخوندم و اونجا چک کردم
البته چون برنامه ی من با اینترنت داره کار میکنه سعی میکنم با جیسان ساعت رو از اینترنت و از سرویس دهنده ها بگیرم دقیقتر باشه اینطوری با بهم خوردن تنظیمات ساعت گوشی هم مشکلی پیش نمیاد