显示通知:Toast和状态栏通知

1.可以使用3类通知方式来通知用户:

  • Toast 通知:适合显示来自后台的简要的文字通知;
  • 状态栏通知:适合来自后台的许要持久并接受用户响应的通知;
  • 对话框通知:适合和Activity有关的通知(前面已经提过);


2.Toast通知:

  1. 创建Toast通知:首先用一个makeText()方法来实例化一个Toast对象,它接受3个参数:应用的Context,文本信息和持续长度。然后调用show()方法来显示。如:
    Context context = getApplicationContext();
    CharSequence text = "Hello toast!";
    int duration = Toast.LENGTH_SHORT;
    
    Toast toast = Toast.makeText(context, text, duration);
    toast.show();

    也可以简单的写成:
    Toast.makeText(context, text, duration).show();
  2. 将Toast通知放在指定的位置上:

使用setGravity(int, int, int),第一个参数为对其方式,第二个位x偏移量,第三个为y偏移量。如:

toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);


3.状态栏通知:

状态栏通知可以在系统状态栏上显示一个图标(也可以带上文字)和一个在通知窗口中的通知文字内容。当用户选择该通知的时候,系统会启动该通知定义的Intent(通常是加载一个界面)。同时也可以为通知设置声音、震动、和闪光灯。

创建状态栏通知:ActivityService都可以创建一个状态栏通知。需要用到两个类:NotificationNotificationManager。具体为:

获得一个对NotificationManager的应用:
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
实例化 Notification对象(同时设置图标、tickerText和时间):
int icon = R.drawable.notification_icon;
CharSequence tickerText = "Hello";
long when = System.currentTimeMillis();

Notification notification = new Notification(icon, tickerText, when);
定义通知内容和 PendingIntent
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);
将Notification传递给NotificationManager:
private static final int HELLO_ID = 1;

mNotificationManager.notify(HELLO_ID, notification);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值