Привет, ребята, мне нужна помощь в том, как получить данные из моего ожидающего намерения, которое устанавливается с помощью широковещательного приемника. То, что я хочу сделать, - это получить данные идентификатора при нажатии на уведомление, которое будет необходимо для моей активности.
вот как я делаю дополнительные функции
public class AlertReceiver extends BroadcastReceiver {
private int id;
// Called when a broadcast is made targeting this class
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
String title = bundle.getString("title");
String time = bundle.getString("time");
id = bundle.getInt("id");
createNotification(context, title, time, "Pharoah Reminder");
}
public void createNotification(Context context, String msg, String msgText, String msgAlert){
Intent reminderActivity = new Intent(context, ReminderPreviewActivity.class);
reminderActivity.putExtra("id", id);
PendingIntent notificationIntent = PendingIntent.getActivity(context, id,
reminderActivity, PendingIntent.FLAG_UPDATE_CURRENT );
NotificationCompat.Builder mBuilder = (NotificationCompat.Builder) new NotificationCompat.Builder(context)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(msg)
.setTicker(msgAlert)
.setContentText(msgText)
.setContentIntent(notificationIntent);
mBuilder.setContentIntent(notificationIntent);
mBuilder.setDefaults(NotificationCompat.DEFAULT_SOUND);
mBuilder.setAutoCancel(true);
NotificationManager mNotificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(id, mBuilder.build());
}
}
но тогда он всегда равен нулю, когда я пытаюсь открыть свою активность из уведомления.
вот как я это понимаю.
public class ReminderPreviewActivity extends AppCompatActivity {
private Toolbar mToolBar;
private TextView titleTextView;
private TextView descTextView;
private TextView timeTextView;
private TextView dateTextView;
private String title;
private String desc;
private String date;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_reminder_preview);
mToolBar = (Toolbar) findViewById(R.id.app_bar);
setSupportActionBar(mToolBar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
titleTextView = (TextView) findViewById(R.id.titleTextView);
descTextView = (TextView) findViewById(R.id.descTextView);
timeTextView = (TextView) findViewById(R.id.timeTextView);
dateTextView = (TextView) findViewById(R.id.dateTextView);
Intent extras = getIntent();
if(extras.getStringExtra("title") != null){
setContentFromExtras(extras);
}else{
setContentFromDB(extras);
}
}
private void setContentFromExtras(Intent extras){
title = extras.getStringExtra("title");
desc = extras.getStringExtra("desc");
date = extras.getStringExtra("date");
String[] dateDB = date.split(" ");
titleTextView.setText(title);
descTextView.setText(desc);
timeTextView.setText(formatTime(dateDB[1])+" "+dateDB[2]);
dateTextView.setText(formatDate(dateDB[0]));
}
public void setContentFromDB(Intent extras){
String id = extras.getStringExtra("id");
int reminderID = Integer.parseInt(id);
titleTextView.setText(reminderID);
}
Мне нужен идентификатор для извлечения данных из базы данных. То же самое происходит, когда я закрываю приложение.