Android Heads-up通知会显示几秒钟,然后从主屏幕上消失,并停留在状态栏和通知抽屉中。在用户进行交互之前,有什么方法可以显示通知在主屏幕上弹出吗?
您需要为其创建新的活动,该活动将在收到通知时打开。在收到通知后,您需要将数据中的有效负载设置为密钥对值,因为否则它将由Android OS处理。
这将帮助-Android Activity as a dialog
How to handle notification when app in background in Firebase
[如果您不介意将通知变成小吃店,则可以显示一个直到用户与之交互后才消失的通知:
public void showSnakbarIndef(final View rootView, String message, String actionMessage) {
Snackbar.make(rootView, message, Snackbar.LENGTH_INDEFINITE)
.setAction(actionMessage, new View.OnClickListener() {
@Override
public void onClick(View v) {
//exit or other action according to notification
}
})
.show();
}
像这样使用setOngoing(true)
中的setAutoCancel(true)
和Notification.Builder
:
notification = new Notification.Builder(getApplicationContext())
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher))
.setSmallIcon(R.drawable.ic_launcher)
.setOngoing(true)
.setAutoCancel(true)
.setContentText(contentText)
.setContentIntent(contentIntent)