Android通知栏Notification的用法

今天看到《第一行代码》的通知栏部分,发现他的方法已经过时了,官方推荐使用Notification.Builder而不是Notification类了,而在设置通知布局样式的时候也该了很多。但大体思路一致,都是使用了Notification类来设置通知和NotificationManager类来管理通知。

于是在网上查了一下他的用法,虽然说官方文档才是正统,但密密麻麻的英文理解起来确实有些费劲(好吧,应该加强自己的英文阅读能力了!)。我一般的习惯是遇到不懂的类或者没见过的类,首先查看API,如果看不懂就去百度搜索这个类,看看有没有大神写过详细博客什么的。即使有时候能看懂文档,也会去百度搜搜,看看理解有没有偏差。
其实,我遇到的问题,大部分情况下,在网上都能查到答案。可见问题的普遍性以及自己还很菜,还有很多常见的问题没有解决。

关于通知的内容这篇博客写的很清楚。
也看了一下他的其他博客,写的都很不错!值得推荐~

简单写了一个通知,这里只给一个MainActivity了,其他的布局文件也就是一个按钮,另一个Activity是什么也无所谓,即使是空的也行。

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
public class MainActivity extends AppCompatActivity
{

private Button button;
@Override
protected void onCreate(Bundle savedInstanceState)
{

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button)findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{

NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Notification.Builder notification = new Notification.Builder(MainActivity.this);
Intent intent = new Intent(MainActivity.this, LoginActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this,0,intent,0);
notification
.setSmallIcon(R.drawable.pic)//通知的图标
.setWhen(System.currentTimeMillis())//通知时的时间
.setContentTitle("通知标题")
.setContentText("通知的内容")
.setContentIntent(pendingIntent);//点击通知触发的事件
manager.notify(1, notification.build());//推送这个通知
}
});
}
}