اطلاعرساني در موبايل در مقاله پیش در مورد دانلودکردن فایل و به دست آوردن سرعت و میزان زمان باقیمانده برای فایل صحبت کردیم. در این مقاله قصد داریم با ایجاد یک Notification در بخش NotificationBar سیستمعامل آندروید کاربر را از دانلود فایل و اطلاعات مربوط به آن مطلع کنیم. در مرحله اول باید یک شیء از کلاس Notification ایجاد کنیم. این شیء یک پیغام است که در NotificationBar نمایش داده میشود، برای مقداردهی کردن آن به صورت زیر عمل میکنیم: int icon = R.drawable.notification_icon; CharSequence tickerText = "Hello"; long when = System.currentTimeMillis(); Notification notification = new Notification(icon, tickerText, when); در خط اول یک آیکون برای نمایش Notification انتخاب میکنیم، در مرحله بعد متنی را که قرار است نمایش داده شود، در مرحله بعدی زمانی را که این Notification رخ داده مشخص میکنیم. سپس با استفاده از یک شیء از کلاس NotificationManager یک Notification را نمایش میدهیم. برای این کار با استفاده از متد getSystemService از کلاس پایه Context یک هندل از سرویس Notification سیستمعامل میگیریم تا بتوانیم به کمک آن یك Notification را نمایش دهیم. برای این کار به اين صورت عمل میکنیم: String ns = Context.NOTIFICATION_SERVICE; NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns); بعد از این مرحله شیء mNotificationManager را مقداردهی میکنیم: Context context = getApplicationContext(); CharSequence contentTitle = "My notification"; CharSequence contentText = "Hello World!"; Intent notificationIntent = new Intent(this, MyClass.class); PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent); ابتدا یک شیء از کلاس Context ایجاد میکنیم كه به سیستمعامل میگوید این Notification Service را چه برنامهای اجرا کردهاست، در اين بخش 2 رشته متنی یکی contentTitle و دیگری contentText ایجاد میکنیم؛ اولی عنوان یک Notification بوده و دیگری متنی که در آن قرار است نمایش داده شود. سپس با ایجاد یک PendingIntent میگویم وقتی روی Notification کلیک کرد چه Activity از برنامهای که در Context مشخص شده است اجرا شود. سپس با استفاده از متد setLatestEventInfo آن را ایجاد میکنیم. گوگل استفاده از این متد را درست نمیداند و پیشنهاد میکند تا از Notification.Builder برای ایجاد یک Notification استفاده کنید. اما نکتهای را که در استفاده از این کلاس باید در نظر داشته باشید این است که شما با مقداردهی contentView از کلاس NotificationManager یک ظاهر سفارشی برای Notification خود ایجاد میکنید. برای این کار شما باید یک Layout ایجاد کنید سپس با استفاده از کلاس RemoteView آن را به contentView اختصاص دهید: RemoteViews contentView = new RemoteViews(getPackageName(), layout_id); سازنده این کلاس 2 مقدار ورودی دریافت میکند؛ اولی gegPackageName است که نام برنامه در حال اجراست، layout_id یک کد منحصر به فرد مربوط به یک Layout بوده که قرار است در NotificationBar نمایش داده شود و به صورت زیر آن را مشخص میکنند: R.layout.id که مقدار id به هر ميزان میتواند باشد. با استفاده از ویژگی contentView کلاس NotificationManager میتوانیم، یک View را در Notification ايجاد كنيم. در نهایت با استفاده از متد notify میتوانیم یک Notification را نمایش دهیم؛ مانند اين کد: mNotificationManager.notify(id, notification); نکتهای که در مورد این متد وجود دارد id است، هر Notification باید id منحصر به فرد داشته باشد. اما اگر این idها یکسان نبودند یک Notification ایجاد میشود و بقیه Notificationها نیز در قالب همان به وجود میآیند، براي مثال اگر شما ۳ عدد داشته باشید همیشه با يك Notification روبهرو میشوید. منبع : http://developer.android.com/guide/topics/ui/notifiers/notifications.html http://www.codeproject.com/Articles/292232/Downloading-multiple-files-using-AsyncTask-in-Andr |
برای دریافت جدیدترین مطالب و آموزشها و همچنین خبرها و استخدامیها فقط کافیست ایمیلتان را در کادر زیر وارد نمایید و در "خبرنامه گچساران کلیک"عضو شوید.بصورت اتوماتیک ایمیلی از طرف ما برایتان ارسال خواهد شد که حاوی لینکی است.باکلیک برروی آن لینک شما نیز به جمع هزاران عضو خبرنامه ما میپوندید.