gpt4 book ai didi

Android:如果将 Activity 带回屏幕,Notification 的 PendingIntent 不会触发 onCreate()

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

我猜我对 Intent Flags 有一些误解。我想做的是,我有一个 radio 流应用程序,它有两个 Activity (PlayerApplication 和 SettingsScreen)。我有一个在后台运行的用于流媒体的 Service.class,它也包含一个通知(您可以在通知覆盖菜单和 PlayerApplication 中停止/开始播放)。如果用户点击通知,PlayerApplicationActivity 应该返回屏幕。

一切正常,预期情况:用户打开 SettingsScreenActivity -> 打开 NotificationOverlayMenu -> 点击 Notification -> PendingIntent 恢复到 PlayerApplicationActivity

现在,PlayerApplicationScreen 在那里,但我无法单击任何内容。我看到,如果我从 Notification 恢复,我的 PlayerApplication 的 onCreate() 不会被触发。但是布局看起来不错(也在 onCreate() 中膨胀了)

我在 Service.class 中使用了以下 PendingIntent:

PendingIntent contentIntent = PendingIntent.getActivity(
this.getApplicationContext(), //Service.class
0,
new Intent(this,PlayerApplicationActivity.class)
.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_SINGLE_TOP),
0);

所以实际上 PendingIntent 应该将 Activity(如果已经运行)带回顶部。我是在使用错误的 Intents 还是漏掉了一点?

编辑:我在 Manifest.xml 中声明了 launchMode

android:launchMode="singleTask"

最佳答案

根据安卓开发者site ,在 FLAG_ACTIVITY_CLEAR_TOPFLAG_ACTIVITY_SINGLE_TOP 和启动模式下:SingleTask ,如果您调用的 Activity 实例已经在运行,则无需创建新实例,它调用 onNewIntent() 方法。所以我认为您应该检查这种情况,即当 onCreate() 未调用时您的 Activity 正在运行。

关于Android:如果将 Activity 带回屏幕,Notification 的 PendingIntent 不会触发 onCreate(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15229054/

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