gpt4 book ai didi

android - FLAG_ACTIVITY_REORDER_TO_FRONT 被忽略

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:30:43 25 4
gpt4 key购买 nike

我有一个带有项目列表的 FragmentActivity,当应用程序在后台运行时,可以推送到该项目列表。

发生这种情况时,我想创建一个状态栏通知并提醒用户更新。
当用户单击通知时, Activity 应重新排序到前面并显示在屏幕上,同时在 处显示新项目列表底部。

所以我写了一个通知管理器,在用户设备上显示:

private static void createNotification(String title, String text,
String largeIcon, String itemdId, Context mCOntext) {

Bitmap ic = BitmapFactory.decodeResource(mContext.getResources(),
R.drawable.ic_launcher);
Intent intent = new Intent(mContext, MyFragmentActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
intent.putExtra(MyFragmentActivity.SELECTED_ITEM_LIST_ID, DatabaseHelper
.getItemListById(listId).getId());
PendingIntent pIntent = PendingIntent.getActivity(mContext, 0, intent,
0);

Notification noti = new NotificationCompat.Builder(mContext)
.setContentTitle(title).setContentText(text)
.setSmallIcon(R.drawable.ic_launcher).setContentIntent(pIntent)
.setAutoCancel(true).setLargeIcon(ic).build();
noti.defaults |= Notification.DEFAULT_LIGHTS;
noti.defaults |= Notification.DEFAULT_VIBRATE;
noti.sound = Uri.parse("android.resource://"
+ mContext.getPackageName() + "/" + R.raw.user_gets_message);

NotificationManager nm = (NotificationManager) mContext
.getSystemService(Context.NOTIFICATION_SERVICE);
nm.notify(0, noti);
}

唯一的问题是它似乎忽略了我的标志,当我导航到 fragment Activity ,然后转到我的主屏幕(应用程序背景),并获得推送,当我点击通知时,应用程序创建一个新 Activity (或 fragment )并显示新 Activity 而不是带有新数据的原始 Activity 。 (这意味着单击后退按钮会从历史堆栈中打开相同的 Activity (或 fragment )。

我重写了 onNewIntent 和 Activity 的所有生命周期方法,我看到在单击后退时,调用的方法是 MyFragmentActivity.onStartMyFragmentActivity.onResume

有没有想过我做错了什么?

最佳答案

我假设问题是您将 Activity 启动模式设置为 singleTask,它添加了标志 FLAG_ACTIVITY_BROUGHT_TO_FRONT按照您的 Intent ,它会导致标志 FLAG_ACTIVITY_REORDER_TO_FRONT 被忽略。

您需要将启动模式更改为单顶。

关于android - FLAG_ACTIVITY_REORDER_TO_FRONT 被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14482480/

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