PDA

View Full Version : چگونگی چک کردن مقداری در زمان اتصال به اینترنت



sajadpm
یک شنبه 14 مهر 1392, 19:12 عصر
ببا سلام و خسته نباشید

حتما دیدین برنامه هایی رو زمانی که با گوشی وصل میشید به اینترنت چک می کنند ببینند ورژن جدید منتشر شده یا پیام جدید وجود داره اگر وجود داشته باشه نوتیفکشن می دهند ! خب حالا می خواستم بپرسم اگر بخواهیم همچین قابلیتی رو اجرا کنیم باید service رو چگونه طراحی کنیم ؟ من اینگونه در فکرم دارم یک سرویس باید ایجاد کنم که بعد از بوت کامل سیستم اجرا بشه و داخلش یک تایمر بزارم که چک کنه هر 5 دقیقه یک بار که اگر اینترنت متصل شده بود اون کارها رو انجام بده ! حالا این راه درستی است به نظرتون ؟ یا راه دیگه ای داره ؟

تشکر پیشاپیش از راهنمایی شما دوستان

ghader62
دوشنبه 15 مهر 1392, 07:32 صبح
شما میتونید یک سرویس ایجاد کنی که با روشن شدن اینترنت کاری رو برات انجام بده
توی منیفست وارد کن
<receiver android:name="yourPackage" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
و کلاس سرویستم هم میتونه بدین صورت باشه
public class ConnectivityReceiver extends BroadcastReceiver {




@Override
public void onReceive(Context context, Intent intent) {
Boolean IS_NETWORK_AVAILABLE = NetworkHelper.hasConnection();
if (IS_NETWORK_AVAILABLE) {
checkVersion();
}
}

sajadpm
دوشنبه 15 مهر 1392, 08:18 صبح
تشکر از پاسخ شما ، این روش شما خیلی بهتر شد فقط الان اگر بخوام این چک کردن ورژن رو تا زمانی که به اینترنت متصل است رو هر 5 دقیقه یک بار چک کنم می توانم از تایمر استفاده کنم در همین سرویس ؟

ghader62
دوشنبه 15 مهر 1392, 10:05 صبح
نمیدونم برا چی میخوای زود زود چک کنی
اگه برا چک ورژن میخوای به نظرم همین کافیه
بستگی به کاری که میخوای داره بعضی ها علاوه بر اینترنت روشن شدن اسکرین رو هم شرط میزارن مثلا هر موقع صفحه روشن شد چک کن که به اینترنت کانکت هست یا نه که اینکارو بکنه
شاید من اشتباه میکنم ولی به نظرم قرار دادن تایمر کار جالبی به نظر نمیاد

sajadpm
دوشنبه 15 مهر 1392, 15:45 عصر
دوباره از پاسخ و پیگیری شما در این موضوع تشکر می کنم ، نه اصرار من به این دلیل است که در بعضی برنامه ها در ابتدای وصل شدن به اینترنت چک نمی کنه مثال من وقتی اینترنت رو فعال می کنم برنامه بعد چند دقیقه چک میکنه و نوتیفکشن میده و اگر مدت طولانی به اینترنت وصل باشم اون برنامه چند بار نوتیفکشن برای آپدیت می دهد ! این به چه صورت ممکن است ؟ تشکر و سپاس فراوان

ghader62
دوشنبه 15 مهر 1392, 17:23 عصر
اگه بخوای یه تایمر بزاری که مثلا در فواصل 5 دقیقه با نوتیفیکیشن پیام بده باید از AlarmManage استفاده کنی
public void setRepeatingAlarm() {
alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, yourClassName.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() , (5 * 60 * 1000), pendingIntent);
}