gpt4 book ai didi

android - 如何在单击通知时打开当前打开的 Activity

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:56:34 25 4
gpt4 key购买 nike

我已经尝试了所有的方法,但它对我不起作用。我想在点击通知时打开或恢复任何屏幕打开的应用程序。

我使用了以下方法:

NotificationCompat.BigTextStyle notiStyle = new NotificationCompat.BigTextStyle();
notiStyle.setBigContentTitle(team);
notiStyle.bigText(message);

Intent resultIntent = new Intent(this, MainDrawerActivity.class);
resultIntent.putExtra("fromNotification", "notification");

resultIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_SINGLE_TOP);


TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);



stackBuilder.addNextIntent(resultIntent);


PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,
PendingIntent.FLAG_UPDATE_CURRENT);

int icon = R.mipmap.ic_launcher;


return new NotificationCompat.Builder(this).setSmallIcon(icon)
.setAutoCancel(true)

.setContentIntent(resultPendingIntent).setContentTitle(team)
.setContentText(message).setStyle(notiStyle).build();

最佳答案

要在不启动任何新 Activity 的情况下将您的应用程序提升到前台,请触发其启动器 Intent。

这个方法来 self 的一个老项目。

/**
* Creates a new launcher intent, equivalent to the intent generated by
* clicking the icon on the home screen.
*
* @return the launcher intent
*/
public static Intent newLauncherIntent(final Context context) {
final Intent intent = new Intent(context, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
return intent;
}

如果应用正在运行,此方法创建的 Intent 不会启动新任务,即使它具有该标志。

这是获取启动器 Intent 的另一种方式。但是,我发现这个 Intent 总是会启动一个新任务,如果应用程序正在运行,这不是您想要的。

final Intent intent = context.getPackageManager()
.getLaunchIntentForPackage(BuildConfig.APPLICATION_ID);

关于android - 如何在单击通知时打开当前打开的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41235142/

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