Android:如果在屏幕上重新启动活动,来自通知的PendingIntent不会触发onCreate()

Android:如果在屏幕上重新启动活动,来自通知的PendingIntent不会触发onCreate(),第1张

概述猜测我对Intent Flags有一些误解.我想要做的是,我有一个无线电流媒体应用程序,它有两个活动(PlayerApplication和SettingsScreen).我有一个用于Streaming的Service.class,它在后台运行,它也包含一个Notification(你可以在notification-overlay菜单和PlayerApplication中停止/开始播放).如果用户单 猜测我对Intent Flags有一些误解.我想要做的是,我有一个无线电流媒体应用程序,它有两个活动(PlayerApplication和SettingsScreen).我有一个用于Streaming的Service.class,它在后台运行,它也包含一个Notification(你可以在notification-overlay菜单和PlayerApplication中停止/开始播放).如果用户单击通知,则应将PlayerApplicationActivity返回到屏幕.

一切正常,期待案例:用户打开SettingsScreenActivity – >打开NotificationOverlayMenu – >点击通知 – > 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(如果已经运行)带回到顶部.我使用错误的意图还是我错过了一个观点?

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

androID:launchMode="singleTask"
解决方法 根据androID开发人员 site,在FLAG_ACTIVITY_CLEAR_top,FLAG_ACTIVITY_SINGLE_top和启动模式下:SingleTask,如果您正在调用的活动实例已经在运行,那么它将调用onNewIntent()方法而不是创建新实例.所以我认为你应该在onCreate()没有调用时检查你的活动正在运行的这种情况. 总结

以上是内存溢出为你收集整理的Android:如果在屏幕上重新启动活动,来自通知的PendingIntent不会触发onCreate()全部内容,希望文章能够帮你解决Android:如果在屏幕上重新启动活动,来自通知的PendingIntent不会触发onCreate()所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1138992.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存