View Full Version : background service
javadaskari
چهارشنبه 24 اردیبهشت 1393, 12:03 عصر
سلام
من یه برنامه دارم که توی اون میخام یک سرویس پس زمینه اجرا کنه و بعد از بسته شدن برنامه همچنان کار کنه و وقتی کارش تموم شد اگر برنامه بسته شده اونو باز کنه و یا یک notification نشون بده و با کلیک روی اون وارد برنامه بشه.
کلا میخام با یه سرویس هاستمو چک کنم و اگر اطلاعات جدیدی داره که الان در برنامه نیست به کاربر اعلام کنم ، نمیدونم با سرویس این کارو میکنن با نه ولی از یه جایی شنیدم که باید با سرویس باشه.
حالا چه جوری این کار انجام میشه؟ مثلا مثل برنامه های خبر،بازار،Gmail و ....
saeed_g21
چهارشنبه 24 اردیبهشت 1393, 12:07 عصر
فکر کنم بتونی از AlarmManager استفاده کنی
javadaskari
چهارشنبه 24 اردیبهشت 1393, 20:20 عصر
فکر کنم بتونی از AlarmManager استفاده کنی
ممنون. جواب قطعی میخام
badname
چهارشنبه 24 اردیبهشت 1393, 20:53 عصر
منم دقیقا دنبال همچین داستانی هستم میخوام بصورت آنلاین نوتیف بدم به برنامه م:افسرده:
saeed_g21
چهارشنبه 24 اردیبهشت 1393, 21:01 عصر
ببین
با AlarmManager میتونی مثلا هر 5 دقیقه چک کنی ببین دستگاه به نت وصل هست یا نه
اگه نه که باز میره تا 5 دقیقه دیگه
اگه اره که هرکاری میخوای انجام بده ولی باز 5 دقیقه بعد چک میکنه که میتونی خودت زمانش رو تغییر بدی
smemamian
چهارشنبه 24 اردیبهشت 1393, 21:19 عصر
سلام
اگر اطلاعات جدیدی داره
شما ابتدا نیاز دارید تعریف کنید چگونه این "اگر" انجام شود. به عبارت دیگه چگونه می خواهید متوجه شوید سایت بروز
شده است. (ساده است!) و بعد :
شما اگر می خواهید اطلاعاتی در پس زمینه دریافت/ارسال کنید (منظور از اینترنت) حتی وقتی برنامه بسته است باید ابتدا
متوجه شوید که چه موقع شخص مورد نظر به اینترنت متصل شده است که برای این کار نیاز به BroadCast Receiver دارید که فال
گوش به اتصال به اینترنت رو داشته باشه. پس از دریافت Receiver دریافتی شما نیاز به تعریف IntentService دارید که اون "اگر"
شما اگر درست بود(سایت شما بروز شده بود) Notification به اصطلاح fire بشه.
نکته: برای کارایی بالاتر شما نباید به ازای هر اتصال به اینترنت این "اگر" رو بررسی کنید.
نکته: برای به تعویق انداختن بررسی "اگر" نباید از AlarmManager ها استفاده کنید. شما کافی هست با Shared Preference
این کار رو انجام دهید بدین صورت که یک متغییر در SP ذخیره کنید و به ازای هر اتصال یک عدد به مقدار قبلی اضافه کند و هنگامی
که برای مثال به عدد 40 رسید، اون "اگر" شمارو بررسی کند.
javadaskari
شنبه 27 اردیبهشت 1393, 17:07 عصر
سلام
شما ابتدا نیاز دارید تعریف کنید چگونه این "اگر" انجام شود. به عبارت دیگه چگونه می خواهید متوجه شوید سایت بروز
شده است. (ساده است!) و بعد :
شما اگر می خواهید اطلاعاتی در پس زمینه دریافت/ارسال کنید (منظور از اینترنت) حتی وقتی برنامه بسته است باید ابتدا
متوجه شوید که چه موقع شخص مورد نظر به اینترنت متصل شده است که برای این کار نیاز به BroadCast Receiver دارید که فال
گوش به اتصال به اینترنت رو داشته باشه. پس از دریافت Receiver دریافتی شما نیاز به تعریف IntentService دارید که اون "اگر"
شما اگر درست بود(سایت شما بروز شده بود) Notification به اصطلاح fire بشه.
نکته: برای کارایی بالاتر شما نباید به ازای هر اتصال به اینترنت این "اگر" رو بررسی کنید.
نکته: برای به تعویق انداختن بررسی "اگر" نباید از AlarmManager ها استفاده کنید. شما کافی هست با Shared Preference
این کار رو انجام دهید بدین صورت که یک متغییر در SP ذخیره کنید و به ازای هر اتصال یک عدد به مقدار قبلی اضافه کند و هنگامی
که برای مثال به عدد 40 رسید، اون "اگر" شمارو بررسی کند.
سلام
ممنون از "اگر هاتون!!"
یه چیزی مثل همینی که شما توضیح دادیو من قبلا رفتم ولی درست کار نکرد(وقتی برنامه بسته بود کار نکرد)
ببینید الان مثلا در برنامه viber زیر 1 ثانیه اطلاعات به روز رسانی میشه!!! (ینی در نسخه ویندوزی اون اگر اطلاعاتی فرستاده بشه همون موقع (حدود 1 ثانیه) در نسخه موبایلی اون دیده میشه.
اگه وقتشو داری خواهشا یه مثالشو برام (ینی کدشو) بگو
اینم ایمیل من : askari.2006@gmail.com
abbasalim
شنبه 27 اردیبهشت 1393, 17:16 عصر
سلام
شاید بهتر باشه قبل از سوال پرسیدن یه سرچ ساده لااقل داخل انجمن بزنیم:چشمک:
http://barnamenevis.org/showthread.php?447300-%D8%A2%D9%BE%D8%AF%DB%8C%D8%AA-%D8%A7%D8%AA%D9%88%D9%85%D8%A7%D8%AA%DB%8C%DA%A9-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D8%A8%D8%B9%D8%AF-%D8%A7%D8%B2-%D8%A8%D8%B1%D9%88%D8%B2%D8%B1%D8%B3%D8%A7%D9%86%D B%8C-%D8%B3%D9%85%D8%AA-%D8%B3%D8%B1%D9%88%D8%B1
javadaskari
یک شنبه 28 اردیبهشت 1393, 08:56 صبح
سلام
شاید بهتر باشه قبل از سوال پرسیدن یه سرچ ساده لااقل داخل انجمن بزنیم:چشمک:
http://barnamenevis.org/showthread.php?447300-%D8%A2%D9%BE%D8%AF%DB%8C%D8%AA-%D8%A7%D8%AA%D9%88%D9%85%D8%A7%D8%AA%DB%8C%DA%A9-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D8%A8%D8%B9%D8%AF-%D8%A7%D8%B2-%D8%A8%D8%B1%D9%88%D8%B2%D8%B1%D8%B3%D8%A7%D9%86%D B%8C-%D8%B3%D9%85%D8%AA-%D8%B3%D8%B1%D9%88%D8%B1
واقعا ممنون!
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.