gpt4 book ai didi

android - 通知打开 Activity ,按下后退按钮,打开主要 Activity ?

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

我能描述我的问题的最好方式是这样的:

  1. 在启动时创建通知(使用 BroadcastReceiver)。
  2. 我的应用主要 Activity 已打开并按下主页按钮(应用仍在后台运行,直到系统将其关闭)。
  3. 我拉下状态栏并按下之前在启动时创建的通知。
  4. 一些不同于主要 Activity 的 Activity 开始了。
  5. 我按下后退按钮并显示主要 Activity 。

我怎样才能避免最后一步?我想要的后退按钮是返回到我所在的位置,即主屏幕(具有所有小部件和应用程序图标的桌面)。我的应用程序的主要 Activity 应该在后台运行,为什么使用后退按钮调用它?

如果相关,我创建通知的代码如下:

public void createNotification(int notifyId, int iconId, String contentTitle, String contentText) {
Intent intent = new Intent(mContext, NewNoteActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(AgendaNotesAdapter.KEY_ROW_ID, (long)notifyId);

PendingIntent contentIntent = PendingIntent.getActivity(mContext, notifyId, intent, 0);

Notification notification = new Notification(iconId, contentTitle, 0);
notification.setLatestEventInfo(mContext, contentTitle, contentText, contentIntent);

mNotificationManager.notify(notifyId, notification);

我尝试向 intent 添加更多的标志组合,但它们都没有解决我的问题...有什么建议吗?

最佳答案

对于谁,谁仍然可能需要答案。看起来这就是您想要实现的目标:

When you start an Activity from a notification, you must preserve the user's expected navigation experience. Clicking Back should take the user back through the application's normal work flow to the Home screen, and clicking Recents should show the Activity as a separate task.

http://developer.android.com/guide/topics/ui/notifiers/notifications.html#NotificationResponse

您的情况是 - Setting up a regular activity PendingIntent

请参阅链接中的完整步骤。基本上你需要:
1. 在AndroidManifest.xml

中定义 Activity层级
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ResultActivity"
android:parentActivityName=".MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity"/>
</activity>


2. 根据启动ActivityIntent创建一个back stack:

...
Intent resultIntent = new Intent(this, ResultActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
// Adds the back stack
stackBuilder.addParentStack(ResultActivity.class);
// Adds the Intent to the top of the stack
stackBuilder.addNextIntent(resultIntent);
// Gets a PendingIntent containing the entire back stack
PendingIntent resultPendingIntent =
stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
...
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setContentIntent(resultPendingIntent);
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(id, builder.build());

关于android - 通知打开 Activity ,按下后退按钮,打开主要 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7614429/

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