Android Studio - Wie plane ich eine Benachrichtigung?Java

Java-Forum
Guest
 Android Studio - Wie plane ich eine Benachrichtigung?

Post by Guest »

Ich habe eine Beispielbenachrichtigung für ein Projekt erstellt, an dem ich gerade arbeite, und verwendet diesen Code in der Methode OnCreate < /strong> meiner Hauptaktivität. Fragment -Klasse, die, wie der Name schon sagt, einen Zeitpicker -Dialog eröffnet, der es dem Benutzer ermöglicht, eine bestimmte Tageszeit festzulegen. Anschließend werden die Hour und Minuten in DataSite.Class gespeichert, der eine Reihe von GET -und -Set -Methoden enthält. Unten finden Sie den Code für TimePicker.class :

Code: Select all

public class TimePickerFragment extends DialogFragment
implements TimePickerDialog.OnTimeSetListener {

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current time as the default values for the picker
final Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);

// Create a new instance of TimePickerDialog and return it
return new TimePickerDialog(getActivity(), this, hour, minute,
DateFormat.is24HourFormat(getActivity()));
}

public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
DataSite ds = new DataSite();
ds.setHour(hourOfDay);
ds.setMinute(minute);
}
}
Kurz gesagt, ich möchte den CreateNoTificationChannel (); Methode -Aufruf der Hauptaktivität gemäß der stunde und planen Minuten Der Benutzer hat ausgewählt. Wie ich bereits sagte, werden die Zeitinformationen in DataSite gespeichert. Alles, was ich jetzt brauche, ist eine Möglichkeit, diese beiden Funktionen zu kombinieren. Soweit ich aus anderen Forum -Posts erkennen kann, muss ich den Alarm Manager verwenden, aber nichts, was ich anderswo gelesen habe, funktioniert für mich. > Bearbeiten: Ich habe versucht, den Alarmmanager zu verwenden. Im Folgenden können Sie den vollständigen Code sehen, den ich derzeit bisher habe:

Code: Select all

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_initial_screen);
.
.
.
.
.
Intent intent = new Intent(this, InitialScreen.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_IMMUTABLE);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "reflectnotification")
.setSmallIcon(R.drawable.app_icon_background)
.setContentTitle("Reflect Reminder")
.setContentText("Time to Reflect on your selected Goal!")
.setStyle(new NotificationCompat.BigTextStyle()
.bigText("Time to Reflect on your selected Goal!"))
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
.setContentIntent(pendingIntent)
.setAutoCancel(true);

NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
createNotificationChannel();
//        notificationManager.notify(200, builder.build());

hour = ((DataSite)getApplication()).getHour();
minute = ((DataSite)getApplication()).getMinute();

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minute);

Toast.makeText(getApplicationContext(),"Picked time: "+ hour +":"+minute, Toast.LENGTH_LONG).show();

alarmMgr = (AlarmManager)getApplicationContext().getSystemService(Context.ALARM_SERVICE);
Intent intent2 = new Intent(getApplicationContext(), InitialScreen.class);
alarmIntent = PendingIntent.getBroadcast(getApplicationContext(), 200, intent2, 0);

alarmMgr.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), alarmIntent);
}
< /code>
    private void createNotificationChannel() {
// Create the NotificationChannel, but only on API 26+ because
// the NotificationChannel class is new and not in the support library
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
CharSequence name = "Reflect Reminder";
String description = "Time to Reflect on your selected Goal!";
int importance = NotificationManager.IMPORTANCE_DEFAULT;
NotificationChannel channel = new NotificationChannel("reflectnotification", name, importance);
channel.setDescription(description);
// Register the channel with the system; you can't change the importance
// or other notification behaviors after this
NotificationManager notificationManager = getSystemService(NotificationManager.class);
notificationManager.createNotificationChannel(channel);
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post