نوتیفیکیشن یا این که Notification چیست؟
تولید
Notification معمولی در اندروید نوتیفیکیشن در اندروید در حالتهای مختلفی قابل پیاده سازی و اجراست . از یک Notification بی آلایش شامل یک تیتر و متن و آیکون کوچک تا یک پیغام که دارنده یک تصویر بزرگ، یک سری دکمه (اکشن) و… هست . در ادامه خصوصی مباحث آموزش برنامه نویسی اندروید در این مبحث به آموزش تولید نوتیفیکیشن (Notification) در اندروید می پردازیم .
نوتیفیکیشن
یا این که Notification چیست؟ به اسم خداوند . نوتیفیکِیشن یک اعلان یا این که پیغام است که به جهت یاداوری، هشدار یا اطلاع رسانی یک رویداد به کاربر نمایش داده میشود . این اعلان ابتدا در قالب یک آیکون در نصیب نوار شرایط یا این که به عبارتی Status Bar ظواهر میشود که کاربر با کشیدن نوار به تحت و باز شدن Notification Drawer، نوتیفیکیشن(های) ساخته شده توسط اپلیکیشنها را مشاهده میکند .
فراگیری
فعالیت با نوتیفیکیشن Notification در اندروید
صد رد صد همگی ما روزانه با تعداد زیادی از این اعلانها در دیوایس اندرویدی خویش سروکار داریم . Notification ها در محیط خارج از رابط کاربری برنامه ساخته می شوند . براین اساس این اعلانها میتوانند در هر زمانی ساخته شوند . حتی زمانی که برنامه در اکنون اجرا نمیباشد .
به تیتر نمونه شما در اکنون تماشای یک کلیپ هستید و یک اعلان مشاهده میکنید که به شما اطلاع میدهد یک SMS دریافت شده . یا این که در اکنون اینترنت گردی میباشید و آیکون Instagram را در نوار موقعیت مشاهده می کنید که با کشیدن نوار به پایین، پیغامی مبنی بر درخواست فالو (Follow) از جانب یک شخص نشان داده میگردد . یا اعلانهای تبلیغاتی که کاربر را به خرید یک کالا یا افزایش برنامه از ورژن بدونپول به ورژن تجاری ترغیب می کند .
بدین ترتیب نوتیفیکیشن در اندروید و سایر سیستم عاملها کاربرد فراوان گستردهای داشته و بسته به انگیزه و نیاز، در فرمتها و قالبهای متعددی میتوان آنها را اجرا کرد . این پیغامها چه بسا وقتی که صفحه در وضعیت قفل (Lock screen) قرار دارد نیز قابلیت و امکان نمایش داده ها را دارند؛ مثل اعلان یک تقویم که مورخ شمسی، میلادی و قمری را به ما نشان میدهد .
گونه های
نوتیفیکیشنها در اندروید نوتیفیکیشن در اندروید را به روشها و حالتهای مختلفی میتوان پیاده سازی کرد . از یک اعلان بی آلایش شامل تیتر و توضیحات گرفته تا یک اعلان پیچیده دربرگیرنده تصویر، اکشن، به کارگیری از Style و… .
همچنین به وسیله PendingIntent میتوانیم گزینش کنیم استفاده کننده پس از لمس اعلان به کدام اکتیویتی از برنامه منتقل شود .
البته در این آموزش صرفا نحوه ایجاد یک نوتیفیکیشن بی آلایش را چک میکنیم . مباحث پیشرفته را در آموزشهای آنگاه ارائه خواهم کرد .
یک پروژه تازه در اندروید استودیو با اسم Notification می سازم که اکتیویتی پیش فرض آن از نوع Empty Activity میباشد .
در این مبحث اینجانب وارد جزئیات طرز سناریو یک اعلان نمیشوم و نوتیفیکیشنها را فقط بوسیله Button اجرا می کنم .
نوتیفیکیشن
بی آلایش (Simple Notification): در گام اولیه معمولی ترین مدل از نوتیفیکیشن در اندروید را پیاده سازی می کنم تا با کلیّت کار آشنا شوید . مقدمه یک Button به activity_main .xml طولانی تر میکنم .
برای مدیریت سادهتر دکمهها لایه را به LinearLayout تغییرو تحول دادهام:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
encoding="utf-8"?> xmlns:app="http://schemas .android .com/apk/res-auto"
xmlns:tools="http://schemas .android .com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center" tools:context=" .MainActivity">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/simple_notif"
android:text="Simple Notification"/>
نکته: پس از درخواست تعدادی نفر از کاربران، تم اندروید استودیو خود را از موقعیت تیره به واضح تغییرو تحول دادم تا اشخاصی که مایل به پرینت آموزشها میباشند با نقص مواجه نشوند .
در
ادامه کار، کدهایی که در فولدر جاوای اکتیویتی نوشتهام را تشریح میکنم:
MainActivity .java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package ir .android_studio .notification;
import androidx .appcompat .app .AppCompatActivity;
import androidx .core .app .NotificationCompat;
import android .app .NotificationManager;
import android .content .Context;
import android .os .Bundle;
import android .view .View;
import android .widget .Button;
public
class MainActivity extends AppCompatActivity {
Button simpleButton;
NotificationManager notifManager;
@Override
protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState);
setContentView(R .layout .activity_main);
simpleButton = findViewById(R .id .simple_notif);
notifManager = (NotificationManager) getSystemService(Context .NOTIFICATION_SERVICE);
simpleButton .setOnClickListener(new View .OnClickListener()
{
@Override
public void onClick(View view) {
simpleNotification();
}
});
}
public void simpleNotification() {
NotificationCompat .Builder sNotifBuilder = new NotificationCompat .Builder(this)
.setSmallIcon(R .drawable .notif_icon)
.setContentTitle("بروزرسانی")
.setContentText("یک
ورژن جدید از برنامه فراهم دریافت است");
notifManager .notify(1, sNotifBuilder .build());
}
}
داخل بدنه کلیدی کلاس MainActivity یک Button با اسم simpleButton و یک آبجکت از متد NotificationManager با نام notifManager جهت مدیریت نوتیفیکیشن ساختهام . آنگاه این دو را داخل متد onCreate کلاس توصیف کردهام .
برای مرتب بودن کدها، کد مربوط به نوتیفیکیشن بی آلایش را درون یک تابع جداگانه در بدنه کلیدی کلاس توصیف کردم . اینجانب نام این متد را simpleNotification تعیین کردهام . برای ایجاد محتوای نوتیفیکیشن واجب است تا از متد NotificationCompat .Builder یک آبجکت (شیء) بسازیم . من نام این شیء را sNotifBuilder تعیین کردم . پارامتر محل ورود این متد، Context می باشد که اینجانب this وارد نمودهام .
آن گاه سه موضوع از محتوای مدنظرم را به این آبجکت بیش تر کردهام:
برچسب: طراحی اپلیکیشن در مشهد،