我在服务类上使用 putExtras 时遇到问题。首先,我有一个服务,可以接收新消息并创建新通知
MyService.class
public void showMessage(String jsonStr)
{
Intent notiIntent = new Intent(App.getContext(),MainActivity.class);
notiIntent.putExtra("message-info", "info text");
notiIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pintent = PendingIntent.getActivity(App.getContext(), 0, notiIntent,0);
NotificationCompat.Builder notificationBuilder =
new NotificationCompat.Builder(this)
.setAutoCancel(true)
.setSmallIcon(R.drawable.ic_launcher)
.setContentIntent(pintent);
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationBuilder.setTicker("New Message");
notificationBuilder.setContentTitle("This is the title").setContentText("Message...");
mNotificationManager.notify("myApp", 1234, notificationBuilder.build());
}
MainActivity.class
@Override
public void onNewIntent(Intent intent)
{
super.onNewIntent(intent);
setIntent(intent);
Intent temp = intent;
Bundle extras = temp.getExtras();
System.out.println("Log extra new intent: "+temp.getStringExtra("message-info"));
if(extras != null)
{
System.out.println("Log extra new intent HAS EXTRA: "+temp.getStringExtra("message-info"));
}
}
我只得到空值。 App.getContext() 引用了从 Application 扩展的我的 App 类。
为什么 MyActivity 没有收到任何额外费用?
最佳答案
I only get null values.
您可能已经有该组件的 PendingIntent
,并且它没有额外的内容。
如果您想要更新可能存在的 PendingIntent
,请将 FLAG_UPDATE_CURRENT
添加到您的 getActivity()
调用中。
关于Android 在通知 Intent 上添加额外内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27383084/