Z
zumafx
Fortgeschrittenes Mitglied
- 58
Moin
Ich möche in meiner App einige Erinnerungen ausgeben, die der User einstellen kann. Hier mal die codeschnipsel
Activity Einstellungen (hier werden die Alarme erstellt)
im onStop der Einstellungen rufe ich dann eine startmethode auf, in der ich die Alarme starte.
Im AlarmReceiver passiert nur das durchreichen des typs
die eigentlich Arbeit macht dann der Alarmservice
als ich nur einen Alarm drin hatte, lief das auch. Dann habe ich einige Änderungen gemacht (Texte in strings, die "typ"-zahlen in die strings.xml)
und "Aufräumarbeiten".
Wenn ich da debugge, wird der Alarm auch gefeuert, aber im Receiver kommt nichts an.
Mag da mal einer drüber gucken und mir auf die Sprünge helfen ?
Ich seh evtl. auch bloss den Wald vor lauter Bäumen nicht mehr ..
vielen Dank
Ich möche in meiner App einige Erinnerungen ausgeben, die der User einstellen kann. Hier mal die codeschnipsel
Activity Einstellungen (hier werden die Alarme erstellt)
Code:
// die Intents erstellen (im oncreate)
Intent aiMorgen = new Intent(getApplicationContext(), AlarmReceiver.class);
aiMorgen.putExtra("Alarmtyp", 1);
piMorgen = PendingIntent.getBroadcast(getApplicationContext(), 1, aiMorgen, 0);
Intent aiMittag = new Intent(getApplicationContext(), AlarmReceiver.class);
aiMittag.putExtra("Alarmtyp", 2);
piMittag = PendingIntent.getBroadcast(getApplicationContext(), 2, aiMittag, 0);
im onStop der Einstellungen rufe ich dann eine startmethode auf, in der ich die Alarme starte.
Code:
public void start(int std, int min, int typ) {
AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
String toasttext = "";
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis());
int interval = 30000; // AlarmManager.INTERVAL_DAY
switch (typ) {
case 0:
cal.set(Calendar.HOUR, std);
cal.set(Calendar.MINUTE, min);
toasttext = getString(R.string.ErinnerungAutoSet);
manager.setRepeating(AlarmManager.RTC_WAKEUP,
cal.getTimeInMillis(),
interval,
piAutostart);
break;
case 1:
cal.set(Calendar.HOUR, std);
cal.set(Calendar.MINUTE, min);
toasttext = getString(R.string.ErinnerungMorgensSet);
manager.setRepeating(AlarmManager.RTC_WAKEUP,
cal.getTimeInMillis(),
interval,
piMorgen);
break;
case 2:
.....
Im AlarmReceiver passiert nur das durchreichen des typs
Code:
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent service1 = new Intent(context, AlarmService.class);
service1.putExtra("Alarmtyp", intent.getIntExtra("Alarmtyp", -1));
context.startService(service1);
}
}
die eigentlich Arbeit macht dann der Alarmservice
Code:
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
PendingIntent contentIntent = null;
String meldung = "";
int alarmTyp;
alarmTyp = intent.getIntExtra("Alarmtyp", -1);
switch(alarmTyp) {
case 0 :
meldung = getString(R.string.StimmErfassennotify);
contentIntent = PendingIntent.getActivity(getApplicationContext(),
0,
new Intent(getApplicationContext(),
StimmungErfassen.class),
PendingIntent.FLAG_ONE_SHOT);
break;
case 1 :
meldung = getString(R.string.MediMorgennotify);
contentIntent = PendingIntent.getActivity(getApplicationContext(),
1,
new Intent(getApplicationContext(),
StimmungErfassen.class),
PendingIntent.FLAG_ONE_SHOT);
break;
als ich nur einen Alarm drin hatte, lief das auch. Dann habe ich einige Änderungen gemacht (Texte in strings, die "typ"-zahlen in die strings.xml)
und "Aufräumarbeiten".
Wenn ich da debugge, wird der Alarm auch gefeuert, aber im Receiver kommt nichts an.
Mag da mal einer drüber gucken und mir auf die Sprünge helfen ?
Ich seh evtl. auch bloss den Wald vor lauter Bäumen nicht mehr ..
vielen Dank