[Android] Android 學習筆記:顯示 notification 提示訊息
Android 上一個很常見的應用是秀 notification 提示訊息,
這個提示訊息會在手機最上面捲動顯示一次,然後也會留在 notification 列表裡~
什麼時候會使用到 notification 呢?這就依各種 app 的情況而定了~
有的 app 會在有更新的時候自動送個 notification,
而比較常見的是 app 在背景中執行,但有某件事情需要通知使用者的時候,也可以用notification~
要使用 notification,主要是要建立出一個 Notification 物件,
指定要顯示的訊息,同時也指定說如果使用者點下了這個訊息,要如何反應~
常見的作法可能是跳出原本 app 的畫面~或者是點下就代表確認要做某件事之類的…
真正要做的事情要用一個 Intent 包起來(像這是回到 Home 主畫面的 intent 範例),
但因為這件事情要等到使用者按下訊息才會做,
因此還要先用 PendingIntent 包起來,才能指定給 notification~
下面的範例程式,在呼叫 showNotification() 時,會顯示出以 sMsg 為內容的訊息,
因為我們給了一個空的 intent,因此使用者點下訊息後,
什麼事也不會做,只會把那個訊息清掉而已~~
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import com.my.R;
public class MyActivity extends Activity {
// Private variables
private static int s_nNotificationId = 0;
public void showNotification(String sMsg)
{
// Create an intent that does nothing
Intent intentNotify = new Intent();
// Prepare the pending-intent for the notification,
// and let it trigger intentNotify, which does nothing
PendingIntent intentContent = PendingIntent.getActivity(MyActivity.this, 0, intentNotify, 0);
// Create notification.
// The string will be shown on top bar of device.
Notification notification = new Notification(R.drawable.ic_launcher, getString(R.string.app_name) + “: “ + sMsg, System.currentTimeMillis());
// The notification will disappear automatically when user clicks it
notification.flags |= Notification.FLAG_AUTO_CANCEL;
// Here sets the title and message of the notification,
// which will be shown in the dropdown notification list.
notification.setLatestEventInfo(MyActivity.this, getString(R.string.app_name), sMsg, intentContent);
// Send out notify
NotificationManager notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(s_nNotificationId++, notification);
}
}