android - 如何在不与 MainActivity 交互的情况下从通知中打开片段页面?
问题描述
我已经编写了代码来创建通知。
我希望通知直接打开一个名为“StepsFragment”的片段类。
但是,每当我单击通知时,什么都没有发生。这里可能是什么问题?
我在 Stack Overflow 上尝试了以下解决方案:
从 Notification 的 childfragment 打开一个对话框片段
它们导致我遇到语法错误,因此我无法构建我的项目。
这是我用来打开通知片段的代码。
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
String input = intent.getStringExtra("inputExtra");
Intent notificationIntent = new Intent(this, StepsFragment.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this,0,notificationIntent,0);
Notification notification = new NotificationCompat.Builder(this, CHANNEL_ID)
.setContentTitle("Steps Tracker")
.setContentText("Steps tracked : " + input )
.setSmallIcon(R.drawable.steps)
.setContentIntent(pendingIntent)
.build();
startForeground(1,notification);
return START_NOT_STICKY;
}
如何打开通知,以便在我点击通知时将我带到 StepsFragment 而不是什么都不做?
解决方案
您不能Fragment
直接从 an打开Intent
- Fragments 附加到 an Activity
,因此您需要调用一个 Activity ,然后该 Activity 将托管您的 Fragment。
有几种方法可以实现这一目标。例如,您可以StepsFragment
进入它自己的Activity
,然后使用 yourIntent
来调用 that Activity
。或者,您可以在Intent
、 调用中添加一个额外的MainActivity
内容,并在您的 Activity 中使用该额外内容作为它应该只显示的提示StepsFragment
。
推荐阅读
- amazon-web-services - 将 AWS 资源从一个账户导出到另一个账户
- reactjs - WASM 反应模块解析失败:未检测到魔术头
- forms - 访问 - 单击切换按钮时需要一个组合框以显示在表单中
- reactjs - 如何将 Gutenberg ColourPicker RGBA 存储为元数据(React)
- go - 如何在 GoLang 中解析 url 中的多个参数?
- inventory - Odoo 13:如何为同一产品使用每家公司的不同重量计量单位
- ssl - 如果我在具有备用信任路径的链中的其他证书已过期,会发生什么情况?
- c# - 如何解决硒 C# 中 Chrome 驱动程序中的“错误:browser_switcher_service.cc”XXX Init() 问题
- ios - SwiftPM 迁移后未找到 Realm.Sync* 类
- c# - 如何制作不会覆盖 WPF .XAML 中样式的自定义文本框