Java 通知出现后如何返回活动?通知不可点击

Java 通知出现后如何返回活动?通知不可点击,java,broadcastreceiver,android-notifications,alarmmanager,android-pendingintent,Java,Broadcastreceiver,Android Notifications,Alarmmanager,Android Pendingintent,我有问题-单击收到的通知后无法返回到主要活动。通知本身不可单击。在onPause方法中触发通知(在后台) 我的主要活动是MainActivity,它通过PendingEvent和AlarmManager设置通知 public class MainActivity extends AppCompatActivity { private NotificationManager notificationManager; private static final int NOTIFY_ID = 1;

我有问题-单击收到的通知后无法返回到主要活动。通知本身不可单击。在onPause方法中触发通知(在后台)

我的主要活动是MainActivity,它通过PendingEvent和AlarmManager设置通知

public class MainActivity extends AppCompatActivity {

private NotificationManager notificationManager;

private static final int NOTIFY_ID = 1;

private static final String CHANNEL_ID = "CHANNEL_ID";

NotificationPublisher notificationPublisher;

Button b1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    createNotificationChannel();
}

private void createNotificationChannel() {

    if (Build.VERSION.SDK_INT > Build.VERSION_CODES.O) {
        CharSequence name = "LemubitReminderChannel";
        String description = "Channel for Lemubit Reminder";
        int importance = NotificationManager.IMPORTANCE_DEFAULT;
        NotificationChannel channel = new NotificationChannel("notifyLemubid", name, importance);
        channel.setDescription(description);

        
        notificationManager = (NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
        notificationManager.createNotificationChannel(channel);
    }

}

private void reminderMethod (){
    Toast.makeText(this, "Напоминание о запуске фонового уведомления", Toast.LENGTH_SHORT).show();

    Intent intent = new Intent(getApplicationContext(), NotificationPublisher.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
    
    PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    
    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    long inPauseTime = System.currentTimeMillis();
    long ten = 2 * 1000;
    alarmManager.set(AlarmManager.RTC_WAKEUP, inPauseTime + ten, pendingIntent);
}

@Override
protected void onPause() {
    super.onPause();
    reminderMethod();
}
}
广播接收机

public class NotificationPublisher extends BroadcastReceiver {

public void onReceive(Context context, Intent intent) {

    int unicode = 0x1F62D;



    NotificationCompat.Builder builder = new NotificationCompat.Builder(context, "notifyLemubid")
            .setAutoCancel(true)
            .setContentTitle("текст " + getEmojiByUnicode(unicode))
            .setContentText("текст")
            .setSmallIcon(R.drawable.ic_launcher_background)
            .setPriority(NotificationCompat.PRIORITY_DEFAULT);

    NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(context);
    notificationManagerCompat.notify(200, builder.build());

}

public String getEmojiByUnicode(int unicode){
    return new String(Character.toChars(unicode));
}
}

您需要在
通知上设置
contentIntent
,然后,当用户单击
通知时,
contentIntent
将被调度。如果您希望用户打开应用程序的
活动
,则只需为您的
活动
创建一个
意图
,将其包装在
挂起内容
中,并在`通知'上调用
setContentIntent()
。关于如何实现这一点,有数百种方法和教程,只需搜索一下。

您需要在
通知上设置
contentIntent
,然后,当用户单击
通知时,
contentIntent
将被调度。如果您希望用户打开应用程序的
活动
,则只需为您的
活动
创建一个
意图
,将其包装在
挂起内容
中,并在`通知'上调用
setContentIntent()
。有上百种方法和教程介绍如何执行此操作,只需搜索一下。

是否触发了
BroadcastReceiver
?是否显示
通知
?由于您的
意图
是针对
广播接收器
,您应该删除标记
标记活动_新任务
标记活动_清除任务
。如果您对
活动有
意图
,则使用这些标志。我删除了它们,但没有任何帮助。是否可以使用getBroadcast返回活动?请回答我的问题。
BroadcastReceiver
是否被触发(是否调用
onReceive()
通知
是否显示?我想是的,通知将显示
广播接收器
是否触发?是否显示
通知
?由于您的
意图
是针对
广播接收器
,您应该删除标记
标记活动_新任务
标记活动_清除任务
。如果您对
活动有
意图
,则使用这些标志。我删除了它们,但没有任何帮助。是否可以使用getBroadcast返回活动?请回答我的问题。
BroadcastReceiver
是否被触发(是否调用
onReceive()
通知
是否显示?我想是的,将显示通知