Java 即使应用程序已关闭,如何像真正的呼叫者一样显示警报?
我正在开发一个SOS应用程序 当Android应用程序收到通知时,我想打开一个警报弹出窗口,其中会显示发送者和SOS图标的一些详细信息,并且会响起持续的警报音 我是通过使用下面的代码来实现的,但是在android 9上,活动并没有启动。当应用程序处于终止状态且不在后台模式下工作时,此代码不会启动活动Java 即使应用程序已关闭,如何像真正的呼叫者一样显示警报?,java,android,firebase,firebase-cloud-messaging,Java,Android,Firebase,Firebase Cloud Messaging,我正在开发一个SOS应用程序 当Android应用程序收到通知时,我想打开一个警报弹出窗口,其中会显示发送者和SOS图标的一些详细信息,并且会响起持续的警报音 我是通过使用下面的代码来实现的,但是在android 9上,活动并没有启动。当应用程序处于终止状态且不在后台模式下工作时,此代码不会启动活动 private void sendNotification(String messageBody, String notificationType, String notificationId) {
private void sendNotification(String messageBody, String notificationType, String notificationId) {
try {
Intent intent = new Intent(this, SosPopUpActivity.class);
intent.putExtra("message", messageBody);
intent.putExtra("notification_type", notificationType);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
NotificationManager notificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
NotificationChannel mChannel = new NotificationChannel(
channelId, channelName, importance);
notificationManager.createNotificationChannel(mChannel);
}
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
// NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, channelId)
.setSmallIcon(R.drawable.ic_notification)
.setLargeIcon(BitmapFactory.decodeResource(this.getResources(), R.mipmap.ic_launcher))
.setContentTitle(getString(R.string.app_name))
.setStyle(new NotificationCompat.BigTextStyle().bigText(messageBody))
.setContentText(messageBody)
.setAutoCancel(false)
.setSound(Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + getApplicationContext().getPackageName() + "/" + R.raw.sos))
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
notificationBuilder.setSmallIcon(R.drawable.ic_notification);
notificationBuilder.setColor(getResources().getColor(R.color.colorPrimary));
//notificationBuilder.setColor(getResources().getColor(R.color.notification_color));
} else {
notificationBuilder.setSmallIcon(R.drawable.ic_notification);
}
notificationBuilder.setPriority(NotificationCompat.PRIORITY_HIGH);
// NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// notificationManager.notify(1234, notificationBuilder.build());
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addNextIntent(intent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(
0,
PendingIntent.FLAG_UPDATE_CURRENT
);
notificationBuilder.setContentIntent(resultPendingIntent);
notificationManager.notify(1234, notificationBuilder.build());
startActivity(intent);
}catch (Exception e)
{
e.printStackTrace();
AlertDialogHelper.showAlertDialog(this,e.getLocalizedMessage());
}
}
如果应用程序崩溃,则会出现堆栈跟踪。请在logcat上查找,并将其添加到您的问题中。没有崩溃日志活动不启动当您通过“并且此代码在应用程序被终止时不启动活动”表示什么意思时?当应用程序被终止时,不在前台,也不在bacground模式下,它不工作@Alexmamoi如果应用程序崩溃,会出现堆栈跟踪。请在logcat上查找,并将其添加到您的问题中。没有崩溃日志活动不启动当您通过“并且此代码在应用程序被终止时不启动活动”表示什么意思时?当应用程序被终止时,不在前台,也不在bacground模式下,它不工作@阿列克斯马莫