gpt4 book ai didi

android - 当应用程序在前台运行时,在警报框中显示推送通知

转载 作者:IT老高 更新时间:2023-10-28 23:35:57 25 4
gpt4 key购买 nike

我正在由 GCM 触发的我的 android 应用程序中进行推送通知。如果应用程序正在警告框中运行,我想显示通知,如果应用程序未运行意味着不在前台仅显示状态栏通知,您如何确定应用程序是否正在运行并且在前台?是这可以显示这样的通知。现在正在使用此代码显示状态栏推送通知

  NotificationManager notificationManager = (NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(icon, message, when);

String title = context.getString(R.string.app_name);

Intent notificationIntent = new Intent(context, BottomActivity.class);
// set intent so it does not start a new activity
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent intent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
notification.setLatestEventInfo(context, title, message, intent);
notification.flags |= Notification.FLAG_AUTO_CANCEL;

// Play default notification sound
notification.defaults |= Notification.DEFAULT_SOUND;

//notification.sound = Uri.parse("android.resource://" + context.getPackageName() + "your_sound_file_name.mp3");

// Vibrate if vibrate is enabled
notification.defaults |= Notification.DEFAULT_VIBRATE;
notificationManager.notify(0, notification);

最佳答案

您可以创建一个新的 Activity 和主题作为 Dialog 并检查前台 Activity 。检查以下代码。

         ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> services = activityManager
.getRunningTasks(Integer.MAX_VALUE);
boolean isActivityFound = false;

if (services.get(0).topActivity.getPackageName().toString()
.equalsIgnoreCase(context.getPackageName().toString())) {
isActivityFound = true;
}

if (isActivityFound) {
resultIntent = new Intent(context, AlertDialogNotification.class);
resultIntent.putExtra(EXTRA_ALERT_MESSAGE_BEAUTIFUL, "anyMessage");
resultIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(resultIntent);
}

在 list 中将主题设置为 Activity 的对话框。希望能帮助到你。让我们知道您是否有问题。

关于android - 当应用程序在前台运行时,在警报框中显示推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15574014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com