Receiver to Alarm活动包返回null,即使已分配默认包值

时间:2018-01-01 09:03:47

标签: java android android-intent android-bundle

我正在尝试将字符串从广播接收器传递到警报活动,但我一直收到空指针异常。

我检查了广播接收器中的值,并且与警报意图捆绑在一起的字符串不为空。

我将字符串附加到意图并启动警报活动意图如下:

@Override    
public void onReceive(Context context, Intent intent) {

    Intent normalReminderIntent = new Intent(context.getApplicationContext(), ReminderAlarmActivity.class);

    // Bundle information and add to the intent for use in the alarm notification
    Bundle extras = new Bundle();
    extras.putString("Title", title);
    extras.putString("Description", description);
    intent.putExtras(extras);

    // Start the reminder activity
    context.getApplicationContext().startActivity(normalReminderIntent);
}

然后在警报活动中我做了意图得到额外的甚至设置默认值但我仍然得到空指针。我是这样做的:

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    setTheme(R.style.AppTheme_Dialog);
    super.onCreate(savedInstanceState);

    setContentView(R.layout.alarm_activity_reminder);

    // Get the bundled info for title and description
    Intent intent = getIntent();
    String title = (String) intent.getExtras().getString("Title", "");
    String description = (String) intent.getExtras().getString("Description", "");
}

查看getString方法我不明白为什么我会得到一个空指针,而不是默认值:

public String getString(String key, String defaultValue) {
    throw new RuntimeException("Stub!");
} 

在这里搜索了很多问题之后,我不知道为什么我一般会得到一个空指针。

提前感谢您的帮助

1 个答案:

答案 0 :(得分:1)

在onReceive

中使用normalReminderIntent.putExtras代替intent.putExtras