如果设备关闭,如何在通知区域/栏中保留通知?

时间:2016-04-07 06:56:23

标签: android notifications notification-area

我正在尝试实施推送通知,我也收到了通知。但是现在我需要在通知栏中打开通知。即如果我在移动设备开启时收到通知,我们没有看到通知区域中的通知,如果设备关闭,那么当我打开移动设备时,需要在通知栏上获得该通知,我还有其他要求,即如果我删除通知区域中的通知,那么在10分钟后我需要在通知区域/栏中收到该通知。

我该如何做到这一点?

3 个答案:

答案 0 :(得分:3)

  1. 您需要将通知内容保存在某些位置,例如SharePreference
  2. 当你使用这个意图“android.intent.action.BOOT_COMPLETED”启动设备时,你会听到,当广播接收器被解雇时,你会从第1步读取通知内容,再次点火通知。
  3. 简单,正确:)

答案 1 :(得分:1)

您可以将PendingIntent与 FLAG_ONE_SHOT 一起使用:

private void sendNotification(String from, String message) {
        Bundle bundle = new Bundle();
        Intent intent = new Intent(this, ChatActivity.class);
        intent.putExtra("INFO", bundle);
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
        Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
                .setContentTitle(from)
                .setSound(defaultSoundUri)
                .setContentText(message)
                .setSmallIcon(R.drawable.ic_notification)
                .setAutoCancel(true)
                .setContentIntent(pendingIntent);

        NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

        notificationManager.notify(0, builder.build());
    }

请记住在清单文件中设置WAKE_LOCK权限:

<uses-permission android:name="android.permission.WAKE_LOCK" />

答案 2 :(得分:0)

要在启动时执行操作,请在清单中注册BroadcastReceveiverBOOT_COMPLETED

在一段时间后使用AlarmManager来做事。