編輯:關於Android編程
原文地址:http://android.xsoftlab.net/training/notify-user/expanded.html
通知在通知欄中以兩種風格呈現:正常視圖與大視圖。只有在通知展開的時候才會展示大視圖。這只有在通知處於通知欄頂部時或者用戶點擊了通知時才會出現。
大視圖於Android 4.1開始出現,並且不支持老版本。這節課將會介紹如何使用大視圖通知。
這是正常視圖的示例:
下面是大視圖的示例:<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPjxpbWcgYWx0PQ=="/uploadfile/Collfiles/20160623/20160623091650643.png" src="/uploadfile/Collfiles/20160623/20160623091650643.png" title="\" />
這節課所展示的示例程序都以正常視圖和大視圖兩種方式為用戶提供相同的功能:
可以延遲提醒或者取消通知。 以一種方式展示提醒文本給用戶。正常視圖以Activity的形式提供了以上功能。要在設計通知時記住這一點:首先在正常視圖中提供各種功能,因為這樣可以有很多用戶與通知產生交互。
示例應用程序使用IntentService的子類PingService來構造並發布通知。
在下面的代碼段中,IntentService的方法onHandleIntent()指明了一個新的Activity會在用戶點擊通知的時候啟動。setContentIntent()方法中設置了在用戶點擊通知時被發布的PendingIntent,因此可以啟動Activity。
Intent resultIntent = new Intent(this, ResultActivity.class);
resultIntent.putExtra(CommonConstants.EXTRA_MESSAGE, msg);
resultIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_CLEAR_TASK);
// Because clicking the notification launches a new ("special") activity,
// there's no need to create an artificial back stack.
PendingIntent resultPendingIntent =
PendingIntent.getActivity(
this,
0,
resultIntent,
PendingIntent.FLAG_UPDATE_CURRENT
);
// This sets the pending intent that should be fired when the user clicks the
// notification. Clicking the notification launches a new activity.
builder.setContentIntent(resultPendingIntent);
下面代碼中展示了如何在大視圖通知中設置一個按鈕:
// Sets up the Snooze and Dismiss action buttons that will appear in the
// big view of the notification.
Intent dismissIntent = new Intent(this, PingService.class);
dismissIntent.setAction(CommonConstants.ACTION_DISMISS);
PendingIntent piDismiss = PendingIntent.getService(this, 0, dismissIntent, 0);
Intent snoozeIntent = new Intent(this, PingService.class);
snoozeIntent.setAction(CommonConstants.ACTION_SNOOZE);
PendingIntent piSnooze = PendingIntent.getService(this, 0, snoozeIntent, 0);
下面的片段展示了如何構造Builder對象。它設置了大視圖的風格為”big text”,並設置了提醒消息的文本。它還使用了addAction()方法來添加Snooze按鈕及Dismiss按鈕,這兩個按鈕將會出現在大視圖通知上:
// Constructs the Builder object.
NotificationCompat.Builder builder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_stat_notification)
.setContentTitle(getString(R.string.notification))
.setContentText(getString(R.string.ping))
.setDefaults(Notification.DEFAULT_ALL) // requires VIBRATE permission
/*
* Sets the big view "big text" style and supplies the
* text (the user's reminder message) that will be displayed
* in the detail area of the expanded notification.
* These calls are ignored by the support library for
* pre-4.1 devices.
*/
.setStyle(new NotificationCompat.BigTextStyle()
.bigText(msg))
.addAction (R.drawable.ic_stat_dismiss,
getString(R.string.dismiss), piDismiss)
.addAction (R.drawable.ic_stat_snooze,
getString(R.string.snooze), piSnooze);
本文主要記錄一下Android SQLiteDatabase中如何判斷數據庫中表是否存在,以及測試SQLiteDatabase數據庫的基本操作。有關SQLite的詳細說明
很多年齡較大的長輩和呆萌的MM們在操作Android手機的過程中總會遭遇“卡殼”問題,比如XX軟件不會設置、XX功能無法開啟等。那麼
下面來介紹一下標題的題目,之前剛接觸Android Studio也是一頭霧水,在此寫下來和大家分享:】(一) . Andriod Studio下載網址:http://ww
學習從模仿開始一個星期完成的音樂播放器基本功能,具有下一首,上一首,暫停和隨機、順序和單曲等播放,以及保存上一次播放的狀態,缺少了歌詞顯示功能。使用了andbase框架的