📅  最后修改于: 2021-01-05 05:28:08             🧑  作者: Mango
通知是一条消息,您可以在应用程序的常规UI之外向用户显示该消息。您可以在android中轻松创建自己的通知。
Android为此提供了NotificationManager类。为了使用此类,您需要通过getSystemService()方法请求android系统来实例化此类的对象。其语法如下-
NotificationManager NM;
NM=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
之后,您将通过Notification类创建Notification并指定其属性,例如图标,标题和时间等,其语法如下-
Notification notify = new Notification(android.R.drawable.stat_notify_more,title,System.currentTimeMillis());
您需要做的下一件事是通过传递上下文和意图作为参数来创建PendingIntent 。通过将PendingIntent赋予另一个应用程序,您就授予它执行指定的操作的权限,就好像另一个应用程序是您自己一样。
PendingIntent pending = PendingIntent.getActivity(getApplicationContext(), 0, new Intent(),0);
您需要做的最后一件事是调用Notification类的setLatestEventInfo方法,并将挂起的意图以及通知主题和主体详细信息一起传递。其语法如下。然后最后调用NotificationManager类的notify方法。
notify.setLatestEventInfo(getApplicationContext(), subject, body,pending);
NM.notify(0, notify);
除了notify方法之外,NotificationManager类还提供其他方法。它们在下面列出-
Sr.No | Method & description |
---|---|
1 |
cancel(int id) This method cancel a previously shown notification. |
2 |
cancel(String tag, int id) This method also cancel a previously shown notification. |
3 |
cancelAll() This method cancel all previously shown notifications. |
4 |
notify(int id, Notification notification) This method post a notification to be shown in the status bar. |
5 |
notify(String tag, int id, Notification notification) This method also Post a notification to be shown in the status bar. |
下面的示例演示NotificationManager类的用法。它创建一个基本的应用程序,使您可以创建通知。
要试验该示例,您需要在实际设备或仿真器上运行它。
Steps | Description |
---|---|
1 | You will use Android studio to create an Android application under a packagecom.example.sairamkrishna.myapplication. |
2 | Modify src/MainActivity.java file to add Notification code. |
3 | Modify layout XML file res/layout/activity_main.xml add any GUI component if required. |
4 | Run the application and choose a running android device and install the application on it and verify the results. |
这是MainActivity.java的内容。
在下面的代码中, abc指示tutorialspoint.com的徽标
package com.example.sairamkrishna.myapplication;
import android.app.Notification;
import android.app.NotificationManager;
import android.content.Context;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends ActionBarActivity {
EditText ed1,ed2,ed3;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ed1=(EditText)findViewById(R.id.editText);
ed2=(EditText)findViewById(R.id.editText2);
ed3=(EditText)findViewById(R.id.editText3);
Button b1=(Button)findViewById(R.id.button);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String tittle=ed1.getText().toString().trim();
String subject=ed2.getText().toString().trim();
String body=ed3.getText().toString().trim();
NotificationManager notif=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
Notification notify=new Notification.Builder
(getApplicationContext()).setContentTitle(tittle).setContentText(body).
setContentTitle(subject).setSmallIcon(R.drawable.abc).build();
notify.flags |= Notification.FLAG_AUTO_CANCEL;
notif.notify(0, notify);
}
});
}
}
这是activity_main.xml的内容
.
这是AndroidManifest.xml的内容。
让我们尝试运行我们的应用程序。要从Android Studio运行该应用,请打开您项目的活动文件之一,然后点击运行工具栏中的图标。在启动应用程序之前,Android Studio将显示以下窗口,以选择要在其中运行Android应用程序的选项。
现在,在字段中填写标题,主题和正文。这已在下图中显示-
现在单击通知按钮,您将在顶部的通知栏中看到一条通知。它显示如下-
现在,向下滚动通知栏并查看通知。这已在下图中显示-