Android使用待处理的Intent发送额外的内容

时间:2015-05-27 11:52:09

标签: android android-intent android-pendingintent

对于我的推送通知,我发送了一些数据,然后我将选择要打开的片段。我试图通过向Pending Intent添加一个Intent Extra来做到这一点,但每当我尝试在下一个Activity中使用这个额外的时候,它都会返回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());
}

1 个答案:

答案 0 :(得分:0)

使用intent extras

在LoginActivity中获取额外内容
    Intent intent = getIntent() ;
    if(intent != null){
        String fragment = intent.getStringExtra("fragment"); //if 'fragment' type is String (see other methods for appropriate type)
    }