Java Android通知已编程

Java Android通知已编程,java,android,notifications,Java,Android,Notifications,我已经建立了一个简单的应用程序,当我点击一个按钮时会显示一个通知。如何显示编程通知 我调用的代码是: Notification.Builder builder = new Notification.Builder(this) .setTicker("Notifica") .setSmallIcon(android.R.drawable.stat_notify_chat) .setContentTitle("Notifica") .setContentText("H

我已经建立了一个简单的应用程序,当我点击一个按钮时会显示一个通知。如何显示编程通知

我调用的代码是:

Notification.Builder builder = new Notification.Builder(this)
    .setTicker("Notifica")
    .setSmallIcon(android.R.drawable.stat_notify_chat)
    .setContentTitle("Notifica")
    .setContentText("Hai una notifica!")
    .setAutoCancel(true)
    .setContentIntent(PendingIntent.getActivity(this, 0,
            new Intent(this, MainActivity.class)
                    .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK), 0));
    NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    nm.notify("interstitial_tag", 1, builder.build());
您可以与捆绑使用

首先,您必须创建挂起的意图并在某处注册它。 然后创建广播接收器并接收该意图

更新:这是我承诺的代码

首先,您需要创建广播接收器

public class NotifyHandlerReceiver extends BroadcastReceiver {

    public static final String ACTION = "me.pepyakin.defferednotify.action.NOTIFY";

    public void onReceive(Context context, Intent intent) {
        if (ACTION.equals(intent.getAction())) {
             Notification.Builder builder = new Notification.Builder(context)
                .setTicker("Notifica")
                .setSmallIcon(android.R.drawable.stat_notify_chat)
                .setContentTitle("Notifica")
                .setContentText("Hai una notifica!")
                .setAutoCancel(true)
                .setContentIntent(PendingIntent.getActivity(context, 0,
                        new Intent(context, MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK), 0));

            NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
            nm.notify("interstitial_tag", 1, builder.build());
       }
    }
}
这是可以处理通知请求的广播接收器。为了使它能够工作,您必须在AndroidManifest.xml中注册它。如果您不这样做,Android将无法处理您的通知请求

只需将声明添加到标记中

从您的“活动”启动延迟时间为毫秒的通知。

您可以与捆绑使用

首先,您必须创建挂起的意图并在某处注册它。 然后创建广播接收器并接收该意图

更新:这是我承诺的代码

首先,您需要创建广播接收器

public class NotifyHandlerReceiver extends BroadcastReceiver {

    public static final String ACTION = "me.pepyakin.defferednotify.action.NOTIFY";

    public void onReceive(Context context, Intent intent) {
        if (ACTION.equals(intent.getAction())) {
             Notification.Builder builder = new Notification.Builder(context)
                .setTicker("Notifica")
                .setSmallIcon(android.R.drawable.stat_notify_chat)
                .setContentTitle("Notifica")
                .setContentText("Hai una notifica!")
                .setAutoCancel(true)
                .setContentIntent(PendingIntent.getActivity(context, 0,
                        new Intent(context, MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK), 0));

            NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
            nm.notify("interstitial_tag", 1, builder.build());
       }
    }
}
这是可以处理通知请求的广播接收器。为了使它能够工作,您必须在AndroidManifest.xml中注册它。如果您不这样做,Android将无法处理您的通知请求

只需将声明添加到标记中


从您的活动中启动延迟时间为毫秒的通知。

似乎您需要AlarmManager您需要AlarmManager来完成此操作,似乎您需要AlarmManager您需要AlarmManager来完成此操作,哦,抱歉。公共静态最终整型请求\代码\通知=1;。这是针对该未决意图的简单请求代码。需要在将来控制此意图,例如,如果您希望更新它。似乎是您编写的。试着更仔细地回顾我的例子。现在我没有错误,但是通知没有开始。我已经用1000秒试过了。好的,这是代码。希望这会有帮助哦,对不起。公共静态最终整型请求\代码\通知=1;。这是针对该未决意图的简单请求代码。需要在将来控制此意图,例如,如果您希望更新它。似乎是您编写的。试着更仔细地回顾我的例子。现在我没有错误,但是通知没有开始。我已经用1000秒试过了。好的,这是代码。希望这会有所帮助
public static final int REQUEST_CODE_NOTIFY = 1;

public void scheduleNotification(long delayTimeMs) {
    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    long currentTimeMs = SystemClock.elapsedRealtime();

    PendingIntent pendingNotifyIntent = PendingIntent.getBroadcast(
            this,
            REQUEST_CODE_NOTIFY,
            new Intent(NotifyHandlerReceiver.ACTION),
            PendingIntent.FLAG_UPDATE_CURRENT);
    alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, currentTimeMs + delayTimeMs, pendingNotifyIntent);
}