gpt4 book ai didi

java - Android:如何点击我的通知直接转到特定屏幕?

转载 作者:行者123 更新时间:2023-11-30 05:03:44 24 4
gpt4 key购买 nike

我正在编写一个提供通知功能的安卓应用程序。此通知可以在应用内和应用外显示。

我遇到的问题是,当我在主屏幕或其他应用程序中并且我的应用程序有推送通知时,点击后,我的应用程序自行终止并从一开始就重新打开(闪屏)。

那么我如何才能点击通知访问当前状态的应用程序,并且访问我想要的特定屏幕。

我尝试了一些可能有用的方法,但它对我不起作用。

public void showNotification(String title, String message){

NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
@SuppressLint("WrongConstant")
NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, CHANNEL_NAME, importance);
//Boolean value to set if lights are enabled for Notifications from this Channel
notificationChannel.enableLights(true);
//Boolean value to set if vibration are enabled for Notifications from this Channel
notificationChannel.enableVibration(true);
//Sets the color of Notification Light
notificationChannel.setLightColor(Color.GREEN);
//Set the vibration pattern for notifications. Pattern is in milliseconds with the format {delay,play,sleep,play,sleep...}
notificationChannel.setVibrationPattern(new long[] {
500,
500,
500,
500,
500
});

notificationManager.createNotificationChannel(notificationChannel);

}

Intent resultIntent = new Intent(this, MainActivity.class);
resultIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_SINGLE_TOP);
resultIntent.putExtra("key", "chat");
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID);
builder.setDefaults(Notification.DEFAULT_ALL);
builder.setContentTitle(title);
builder.setContentInfo("info");
builder.setContentText(message);
builder.setAutoCancel(true);
builder.setWhen(System.currentTimeMillis());
builder.setShowWhen(true);
builder.setSmallIcon(R.drawable.car_icon);
builder.setContentIntent(pendingIntent);
// NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(NOTIFICATION_ID, builder.build());

}

顺便说一下,我的 logcat 没有显示任何内容......

至少我希望我的应用程序以当前状态打开,不要自行终止。

最佳答案

我认为这是因为您添加了以下标志:

Intent.FLAG_ACTIVITY_CLEAR_TOP
Intent.FLAG_ACTIVITY_SINGLE_TOP

关于java - Android:如何点击我的通知直接转到特定屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57755466/

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