Eu tenho um BroadcastReceiver que obtém dados de Activity by Intent, com PendingIntent.
Enviar dados:
Intent intent = new Intent(addOne.this,AlarmReceiver.class);
intent.putExtra("msg", title.getText().toString());
intent.putExtra("note", note.getText().toString());
int id =...;
PendingIntent alarmIntent = PendingIntent.getBroadcast(getApplicationContext(), id, intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmMgr.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), alarmIntent);
Adquirir dados:
@Override
public void onReceive(Context context2, Intent intent) {
String msg=intent.getStringExtra("msg");
String title=intent.getStringExtra("msg");
...
}
Quando onReceive é chamado, recebo uma NullPointerException.
Meu manifesto BroadcastReceiver:
<receiver android:name=".AlarmReceiver" android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
Respostas:
0 para resposta № 1Faça sua intenção pendente como a linha abaixo e tente
PendingIntent alarmIntent = PendingIntent.getBroadcast(getApplicationContext(), id, intent, PendingIntent.FLAG_CANCEL_CURRENT);