سلام،
من یک سرویس دارم و میخوام اجرای اون رو در یک حلقه بی نهایت بگذارم...
while(true) o رو توی سرویس میذارم ولی جواب نمیده... یجوری میخوام توی mainActivity بگذارم ولی نمیشه ببینید...
کد پیاچپی:
while(true){
Intent intent = new Intent(this, MyService.class);
startService(intent);
}
راه حلی دارید؟؟؟؟؟
اگه راهی هست که بتونم این حلقه رو توی mainActivity بذارم ممنون میشم .......؟؟؟؟؟
سلام.
احتمالا کد بالا باعث ایجاد خطا می شود.
شما قصد دارید یک سرویس (Service) که در آن کدی خاص اجرا می شود، بی نهایت بار شروع (start) شود، خوب به جای این کار، شما سرویس را یک بار شروع (start) کنید، سپس در کدهای آن، کدی را بنویسید که مثلا هر 10 ثانیه یک بار (یا هر مقدار زمان مورد نظر شما) تکرار شود. یعنی بر اساس کلید زیر :
کلید شماره 2861
یا اگر برایتان مهم است که حتما شروع سرویس، به صورت حلقه وار اجرا شود، باز هم از همین کد موجود در کلید بالا استفاده کنید که در آن، یک مدت زمان معقول را به کار برده و همچنین کدهای سرویس را به گونه ای بنویسید که پس از اجرای عملیات ها، بسته شود (destroy شود). در این حالت، کدهای سرویس نباید یک عملیات سنگین باشد.
در ضمن، برخی کدها نیاز به بینهایت بار اجرا ندارند، مثلا کد زیر کافی است که تنها یک بار قبل از حلقه مربوط به تکرار کدها، اجرا شود (مواردی مثل تعریف متغیرها، تنها یک بار اجرا شوند، کافی است) :
کد پیاچپی:
Intent intent = new Intent(this, MyService.class);