Android:intent.putExtra 在服务类中获取通知

Posted

技术标签:

【中文标题】Android:intent.putExtra 在服务类中获取通知【英文标题】:Android: intent.putExtra in a Service Class to get notifications 【发布时间】:2012-09-30 23:54:03 【问题描述】:

这是我在 Service 类中的 showNotification 方法:

private void showNotification() 

Notification notification = new Notification(R.drawable.icon,
"New Notification", System.currentTimeMillis());

Intent i = new Intent(this, myActivity.class);
i.putExtra("notification", "MyNotif");
i.putExtra("notifiedby", "NotedBy");
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, i, 0);
notification.setLatestEventInfo(this, "NotedBy", "MyNotif", contentIntent);
nm.notify(111, notification);

所以在点击状态栏中的Notification后,我将进入myActivity

问题是这些行总是在 myActivity 中给出 false

this.getIntent().hasExtra("notification")
this.getIntent().hasExtra("notifiedby")

putExtra() 不能与 PendingIntent 一起使用吗?

【问题讨论】:

【参考方案1】:

试试这个代码:

String notification = getIntent().getStringExtra("notification");
String notifiedby = getIntent().getStringExtra("notifiedby");

【讨论】:

是的,即使我想通了。如果我删除“这个”,它工作正常。你知道为什么会这样吗?谢谢 我不知道您是如何处理您的代码的,但有时“this”可能指的是错误的上下文。如果您不提供任何内容,android 将采用您当前活动的默认上下文,您会得到正确的结果。

以上是关于Android:intent.putExtra 在服务类中获取通知的主要内容,如果未能解决你的问题,请参考以下文章

Android 中使用intent.putExtra实现Activity之间的参数传递

Android(十七)Intent的使用

Android通过代码重启设备

如何将方向设置为intent.putExtra?

在android中选择并裁剪最大尺寸

android bean 中含有bitmap 怎么用过intent传递