انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
اجرای یک دستور در زمان خاص (مثلا ساعت 13 هر روز) (اندروید)

اجرای یک دستور در زمان خاص (مثلا ساعت 13 هر روز) (اندروید)

#1
با سلام
من می خوام یک سری کد در یک زمان مشخص مثلا ساعت 13 هر روز اجرا بشه.
می دونم از سرویس باید استفاده کنم و با این قسمت مشکل ندارم.
مشکل من در بحث زمان اجراست نمی دونم با چه کدی باید ساعت 13 رو مشخص کنم.
ممنون می شم دستورش رو بهم بگید.
 
پاسخ

اجرای یک دستور در زمان خاص (مثلا ساعت 13 هر روز) (اندروید)

#2
سلام.
ابتدا مشخص است که باید دستور را با Service اجرا کنیم :

http://www.kelidestan.com/keys/categorie...ategory=36

چون اگر قرار باشد یک سری دستور، هر چند ساعت و یا در ساعتی مشخص از هر روز اجرا شود، مسلما کاربر در تمام آن مدت، در حال اجرای برنامه اندروید نیست و قبلا آن را بسته است.

----------------------------

خوب حالا باید ببینیم که به چه صورت تشخیص بدهیم که چه زمانی، ساعت 13 می شود و چگونه هم کدها را به صورت تکرارشونده، هر روز و در همان ساعت اجرا کنیم. زیرا ما به محض اجرای برنامه اندروید، Service را شروع می کنیم. بنده روشی که به ذهنم می رسد را بیان می کنم (خودم تاکنون آن را کدنویسی نکردم) :

فرض می کنیم که در Activity مورد نظرمان، Service را شروع می کنیم تا از این به بعد، مستقل از برنامه اندروید (حتی در حالت بسته بودن آن عمل کند). کدهای Service باید شامل مراحل زیر باشد :

1- زمان فعلی (همین حالا که سرویس شروع شده) را به دست می آوریم (بر اساس کلید شماره 2981).
2- زمان متناظر با همان ساعت مورد نظرمان (مثلا ساعت 13 بعدی) را به دست می آوریم. در این مورد، کلید قبلی و همچنین دسته بندی زیر می تواند مفید باشد :

http://www.kelidestan.com/keys/categorie...ategory=40

3- میزان فاصله زمان فعلی تا همان ساعت مورد نظرمان (مثلا ساعت 13 بعدی) را بر حسب ثانیه به دست می آوریم. در این مورد، کلید قبلی و همچنین دسته بندی زیر می تواند مفید باشد :

http://www.kelidestan.com/keys/categorie...ategory=40

باید کد را تست کنید که به درستی بتواند میزان زمان باقیمانده را تشخیص بدهد، زیرا دو حالت داریم که از ساعت 13 روز گذشته باشد و یا اینکه هنوز ساعت 13 نشده باشد.

4- یک شمارنده معکوس بر حسب آن تعداد ثانیه تا زمان مورد نظر (ساعت 13) ایجاد می کنیم (بر اساس کلید شماره 2610) که بعد از پایان زمان این شمارنده، باید کد زیر اجرا شود (کد شامل دو مرحله است) :

کد :
مرحله اول : یک بار اجرای ((عملیات مورد نظرمان))
مرحله دوم : یک کد تکرارشونده به صورت هر 24 ساعت یک بار، که ((عملیات مورد نظرمان)) را اجرا می کند (بر اساس کلید شماره 2861). این مرحله را می توانید با یک حلقه while بینهایت اجرا کنید (یعنی یک حلقه while که شرط آن برابر true باشد و بنابراین همیشه در حال اجرا خواهد بود) و درون حلقه while هم، کد تکرارشونده (بر اساس کلید شماره 2861) با زمان معادل 24 ساعت برای تکرار شدن را می نویسید).

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

اجرای یک دستور در زمان خاص (مثلا ساعت 13 هر روز) (اندروید)

#3
سلام و تشکر
آیا با alarmmanager نمی شه این کار رو انجام داد؟
 
پاسخ

اجرای یک دستور در زمان خاص (مثلا ساعت 13 هر روز) (اندروید)

#4
(۱۳۹۴/۰۲/۱۸, ۰۶:۵۳ ب.ظ)'ehtirani' نوشته: سلام و تشکر
آیا با alarmmanager نمی شه این کار رو انجام داد؟
 


 


سلام.
بله به نظر می آید AlarmManager و JobScheduler می توانند برای این مورد به کار بروند و گزینه های مناسب تری برای انجام کارهای تکرارشونده هستند :

http://www.vogella.com/tutorials/Android...ticle.html

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط am5152 ، شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان