天天看點

xamarin學習筆記A12(安卓Notification)

(每次學習一點xamarin就做個學習筆記和視訊來加深記憶鞏固知識)

如有不正确的地方,請幫我指正。

通知(Notification)簡介

當一個應用程式不在前台運作而在背景運作時,這時有個消息希望讓使用者知道,那麼可以在狀态欄顯示一個消息圖示,下拉狀态欄後可以看到具體消息,這就是通知功能。在Activity中一般用得少,主要是用在Service裡。

通知的使用

使用方法很簡單 ,建立一個Notification對象,然後使用NotificationManager對象的Notify方法發送出去。

public class MainActivity : AppCompatActivity,IOnClickListener
    {
        public void OnClick(View v)
        {
            switch (v.Id)
            {
                case Resource.Id.button1://發送通知
                    SendNotice();
                    break;
            }
        }

        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView (Resource.Layout.Main);

            Button btn1 = this.FindViewById<Button>(Resource.Id.button1);
            btn1.SetOnClickListener(this);
        }

        private void SendNotice()
        {
            NotificationManager manager = (NotificationManager)this.GetSystemService(NotificationService);
            Notification notification = new NotificationCompat.Builder(this).SetContentTitle("快遞通知")
                .SetContentText("你購買的C#進階程式設計已發貨了!")
                .SetSmallIcon(Resource.Drawable.a1_16)  //設定顯示在狀态欄的小圖示
                .SetLargeIcon(BitmapFactory.DecodeResource(this.Resources, Resource.Drawable.a1_32))//設定下拉後大圖示
                .SetContentIntent(GetPendingIntent())  //設定點選通知後要進入的activity
                //.SetAutoCancel(true)  //設定點通知後不再顯示通知
                //SetVibrate振動要在manifest檔案中聲明權限"android.permission.VIBRATE",參數500表示有通知來時先等待0.5秒,後面的表示振動1秒停2秒後再振動1秒
                .SetVibrate(new long[] { , , ,  }) //設定通知來時的振動
                //.SetSound(Android.Net.Uri.FromFile("/system/.........填寫鈴聲具體路徑"))
                .SetLights(Color.Green, , ) //第一個時間表示燈閃的時間為1秒,第二時間表示燈慢慢變暗的時間為1秒
                .SetPriority(NotificationCompat.PriorityMax) //設定通知優先級
                .Build();
            manager.Notify(, notification);
        }

        //點選通知後要進入的activity
        private PendingIntent GetPendingIntent()
        {
            Intent intent = new Intent(this, typeof(SecondActivity));
            PendingIntent pi = PendingIntent.GetActivity(this, , intent, );
            return pi;
        }
    }
           

代碼和視訊在我上傳的CSDN資源中http://download.csdn.net/download/junshangshui/10022512

繼續閱讀