Android 发送带有未决 Intent 的额外内容
Android sending extra's with pending Intent
对于我的推送通知,我正在发送一些数据,然后我将选择要打开的片段。我试图通过向待定意图添加一个额外的意图来做到这一点,但是每当我尝试在下一个 Activity 中使用这个额外的内容时,它 returns NULL。
我在这里读到我需要更改 PendingActivity 标志,但我已经更改了几次,但没有任何区别。我一定是在某个地方犯了一个愚蠢的错误。
private void sendNotification(String title, String msg, String fragment) {
mBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.logo_m_white)
// .setLargeIcon(((BitmapDrawable) getResources().getDrawable(R.drawable.icon_filled_m)).getBitmap())
.setContentTitle(title)
.setContentText(msg)
.setSound(Uri.EMPTY)
.setPriority(1)
.setLights(Color.RED, 300, 5000)
.setAutoCancel(true);
Intent intent = new Intent(this, LoginActivity.class);
intent.putExtra("fragment", fragment);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pi = PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_CANCEL_CURRENT);
mBuilder.setContentIntent(pi);
mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(0, mBuilder.build());
}
使用 intent extras 在您的 LoginActivity 中获取 extras
Intent intent = getIntent() ;
if(intent != null){
String fragment = intent.getStringExtra("fragment"); //if 'fragment' type is String (see other methods for appropriate type)
}
对于我的推送通知,我正在发送一些数据,然后我将选择要打开的片段。我试图通过向待定意图添加一个额外的意图来做到这一点,但是每当我尝试在下一个 Activity 中使用这个额外的内容时,它 returns NULL。
我在这里读到我需要更改 PendingActivity 标志,但我已经更改了几次,但没有任何区别。我一定是在某个地方犯了一个愚蠢的错误。
private void sendNotification(String title, String msg, String fragment) {
mBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.logo_m_white)
// .setLargeIcon(((BitmapDrawable) getResources().getDrawable(R.drawable.icon_filled_m)).getBitmap())
.setContentTitle(title)
.setContentText(msg)
.setSound(Uri.EMPTY)
.setPriority(1)
.setLights(Color.RED, 300, 5000)
.setAutoCancel(true);
Intent intent = new Intent(this, LoginActivity.class);
intent.putExtra("fragment", fragment);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pi = PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_CANCEL_CURRENT);
mBuilder.setContentIntent(pi);
mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(0, mBuilder.build());
}
使用 intent extras 在您的 LoginActivity 中获取 extras
Intent intent = getIntent() ;
if(intent != null){
String fragment = intent.getStringExtra("fragment"); //if 'fragment' type is String (see other methods for appropriate type)
}