App wird sofort beendet

  • Antworten:37
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 745

19.10.2013 19:26:31 via Website

Carsten Müller
Chris H.

weil ich hab das jetzt so:
1StartServiceAt(startonboot, DateTime.Now + 1800000 ,True)
2 StartServiceAt(startonboot, DateTime.Now + 1800000 + 1800000 ,True)
3 StartServiceAt(startonboot, DateTime.Now + 1800000 + 1800000 + 1800000 ,True)
4 StartServiceAt(startonboot, DateTime.Now + 1800000 + 1800000 + 1800000 + 1800000 ,True)
5 StartServiceAt(startonboot, DateTime.Now + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 ,True)
6 StartServiceAt(startonboot, DateTime.Now + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 ,True)
7 StartServiceAt(startonboot, DateTime.Now + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 ,True)
8 StartServiceAt(startonboot, DateTime.Now + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 ,True)
9 StartServiceAt(startonboot, DateTime.Now + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 ,True)
10 StartServiceAt(startonboot, DateTime.Now + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000,True)
11 StartServiceAt(startonboot, DateTime.Now + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 ,True)
12 StartServiceAt(startonboot, DateTime.Now + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000,True)
13 StartServiceAt(startonboot, DateTime.Now + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 ,True)
14 StartServiceAt(startonboot, DateTime.Now + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 ,True)
15 StartServiceAt(startonboot, DateTime.Now + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 ,True)
16 StartServiceAt(startonboot, DateTime.Now + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 ,True)
17 StartServiceAt(startonboot, DateTime.Now + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 ,True)
18 StartServiceAt(startonboot, DateTime.Now + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 ,True)
19 StartServiceAt(startonboot, DateTime.Now + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 ,True)
20 StartServiceAt(startonboot, DateTime.Now + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 ,True)
21 StartServiceAt(startonboot, DateTime.Now + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 ,True)
22 StartServiceAt(startonboot, DateTime.Now + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 ,True)
23 StartServiceAt(startonboot, DateTime.Now + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 ,True)
24 StartServiceAt(startonboot, DateTime.Now + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 + 1800000 ,True)
:*):blink::wacko::wink:

Soll das ein Witz sein?

Herzliche Grüße

Carsten
nicht direkt

Posts vor dem 22.12.2014 sind von dem Vorgänger dieses Accounts

  • Forum-Beiträge: 33.139

19.10.2013 19:29:42 via Website

Hi

okay, dann hast Du das mit startserviceat() mal rein gar nicht verstanden.

Schmeiss diesen ganzen Quatsch bitte aus Deinem Code.

Starte dann *einmal* den Service mit

1StartService(startonboot)

Dann startest Du *in dem Service* am Ende der Service_Start Sub den Service zu einem späteren Zeitpunkt nochmal:

1StartServiceAt("", DateTime.Now + 1800000 ,True)
Fertig.

Der Service wird dann so lange um DateTime.Now+1800000 gestartet, bis Du ihn mit StopService(startonboot) beendest.

Herzliche Grüße

Carsten

— geändert am 19.10.2013 19:31:02

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

  • Forum-Beiträge: 745

19.10.2013 19:32:49 via Website

Carsten Müller
Hi

okay, dann hast Du das mit startserviceat() mal rein gar nicht verstanden.

Schmeiss diesen ganzen Quatsch bitte aus Deinem Code.

Starte dann *einmal* den Service mit

1StartService(startonboot)

Dann startest Du *in dem Service* am Ende der Service_Start Sub den Service zu einem späteren Zeitpunkt nochmal:

1StartServiceAt("", DateTime.Now + 1800000 ,True)
Fertig.

Der Service wird dann so lange um DateTime.Now+1800000 gestartet, bis Du ihn mit StopService(startonboot) beendest.

Herzliche Grüße

Carsten
;) stimmt die variante ist deutlich besser ;)
ich habs jetzt mal so:
1Sub Service_Start (StartingIntent As Intent)
2StartServiceAt("", DateTime.Now + 1800000 ,True)
3If Main.nachricht= True Then
4CallSub(Main, "destroy")
5Else
6Dim n As Notification
7n.Initialize
8n.Icon = "icon" ' Icon der App
9n.Vibrate=True
10n.Sound=True
11n.Light=True ' Signallämpchen an
12
13n.OnGoingEvent=False
14n.SetInfo("Mehrfache Errinnerung: ", "nicht gemacht...", Main) 'Die Nachricht
15n.Notify(9)
16CallSub(Main,"destroy")
17End If
18End Sub

— geändert am 19.10.2013 19:36:01

Posts vor dem 22.12.2014 sind von dem Vorgänger dieses Accounts

  • Forum-Beiträge: 33.139

19.10.2013 19:47:05 via App

Achtung!

Es ist keine gute Idee, in einem Service Main.* Variablen zu nutzen. Das funktioniert nämlich nur, wenn die Main Activity noch im Speicher ist. Darauf hat der Service aber keinen Einfluss.

Ist die Main Activity nicht mehr im Speicher, hagelt es bei Deinem Service Exceptions!

Herzliche Grüße

Carsten

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

  • Forum-Beiträge: 745

19.10.2013 19:47:24 via Website

Chris H.
Carsten Müller
Hi

okay, dann hast Du das mit startserviceat() mal rein gar nicht verstanden.

Schmeiss diesen ganzen Quatsch bitte aus Deinem Code.

Starte dann *einmal* den Service mit

1StartService(startonboot)

Dann startest Du *in dem Service* am Ende der Service_Start Sub den Service zu einem späteren Zeitpunkt nochmal:

1StartServiceAt("", DateTime.Now + 1800000 ,True)
Fertig.

Der Service wird dann so lange um DateTime.Now+1800000 gestartet, bis Du ihn mit StopService(startonboot) beendest.

Herzliche Grüße

Carsten
;) stimmt die variante ist deutlich besser ;)
ich habs jetzt mal so:
1Sub Service_Start (StartingIntent As Intent)
2StartServiceAt("", DateTime.Now + 1800000 ,True)
3If Main.nachricht= True Then
4CallSub(Main, "destroy")
5Else
6Dim n As Notification
7n.Initialize
8n.Icon = "icon" ' Icon der App
9n.Vibrate=True
10n.Sound=True
11n.Light=True ' Signallämpchen an
12
13n.OnGoingEvent=False
14n.SetInfo("Mehrfache Errinnerung: ", "nicht gemacht...", Main) 'Die Nachricht
15n.Notify(9)
16CallSub(Main,"destroy")
17End If
18End Sub
nachricht versichert nochmal dass die nachricht kommt und der sub destroy stoppt startonboot

Posts vor dem 22.12.2014 sind von dem Vorgänger dieses Accounts

  • Forum-Beiträge: 745

19.10.2013 19:49:09 via Website

Carsten Müller
Achtung!

Es ist keine gute Idee, in einem Service Main.* Variablen zu nutzen. Das funktioniert nämlich nur, wenn die Main Activity noch im Speicher ist. Darauf hat der Service aber keinen Einfluss.

Ist die Main Activity nicht mehr im Speicher, hagelt es bei Deinem Service Exceptions!

Herzliche Grüße

Carsten
ähhh-heißt?-wie soll ichs dann machen?

Posts vor dem 22.12.2014 sind von dem Vorgänger dieses Accounts

  • Forum-Beiträge: 33.139

19.10.2013 19:49:24 via App

Chris H.

nachricht versichert nochmal dass die nachricht kommt und der sub destroy stoppt startonboot
Hä? Bahnhof...

Herzliche Grüße

Carsten

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

  • Forum-Beiträge: 745

19.10.2013 19:52:04 via Website

Carsten Müller
Chris H.

nachricht versichert nochmal dass die nachricht kommt und der sub destroy stoppt startonboot
Hä? Bahnhof...

Herzliche Grüße

Carsten
war nur nochmal zur erklärung...
weil nachricht wird auf true gesetzt beim starten des services-und wie gesagt: "sub destroy stoppt startonboot"

Posts vor dem 22.12.2014 sind von dem Vorgänger dieses Accounts

  • Forum-Beiträge: 33.139

19.10.2013 21:06:57 via App

Chris H.

ähhh-heißt?-wie soll ichs dann machen?
Na anders. :-)

Um den besten Weg vorzuschlagen, müsste ich wissen, was genau du überhaupt vorhast.
Ganz allgemein: Du könntest die Variablenwerte entweder im Service neu ermitteln oder von der Activity aus irgendwo speichern (SQL Datenbank oder File zum Beispiel) und vom Service darauf zugreifen.
Es gibt auch noch weitere Möglichkeiten. Was das beste für Deinen Anwendungsfall ist, kann ich Dir so nicht sagen...

Herzliche Grüße

Carsten

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

  • Forum-Beiträge: 745

20.10.2013 11:53:38 via Website

Carsten Müller
Chris H.

ähhh-heißt?-wie soll ichs dann machen?
Na anders. :-)

Um den besten Weg vorzuschlagen, müsste ich wissen, was genau du überhaupt vorhast.
Ganz allgemein: Du könntest die Variablenwerte entweder im Service neu ermitteln oder von der Activity aus irgendwo speichern (SQL Datenbank oder File zum Beispiel) und vom Service darauf zugreifen.
Es gibt auch noch weitere Möglichkeiten. Was das beste für Deinen Anwendungsfall ist, kann ich Dir so nicht sagen...

Herzliche Grüße

Carsten
Also nochmal...-ich möchte, dass wenn etwas nicht eingestellt ist, dass dann alle 30 min. eine errinerungsbenachrichtigung kommt und erinnert bis man dann da in die app gegangen ist, man auf keine errinerung klickt und dann wieder verlässt...-timer hast du mir abgeraten und der service startet jetzt trotz "keine Erinnerung"-aber nur wenn man vorher pausiert hat und dann wieder rein geht und dann das einstellt und dann wieder geht

Posts vor dem 22.12.2014 sind von dem Vorgänger dieses Accounts

  • Forum-Beiträge: 33.139

20.10.2013 12:03:40 via App

Wozu brauchst Du dann den Wert von Main.nachricht im Service?

Wenn der User in der Activity "keine Erinnerung" einstellt, dann stoppe doch mit Stopservice() einfach den Service?

Und falls Du doch Werte aus Variablen der Main Activity brauchst, dann speichere sie in einer Datei und lese diese im Service aus.

Schreiben:

File.Writestring(File.DirInternal, "Nachricht.txt", Nachricht)

Lesen:

Dim NachrichtStatus as Boolean
NachrichtStatus = file.readstring(file.DirInternal, "Nachricht.txt")

Herzliche Grüße

Carsten

— geändert am 20.10.2013 12:04:27

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

  • Forum-Beiträge: 745

20.10.2013 12:50:37 via Website

Carsten Müller
Wozu brauchst Du dann den Wert von Main.nachricht im Service?

Wenn der User in der Activity "keine Erinnerung" einstellt, dann stoppe doch mit Stopservice() einfach den Service?

Und falls Du doch Werte aus Variablen der Main Activity brauchst, dann speichere sie in einer Datei und lese diese im Service aus.

Schreiben:

File.Writestring(File.DirInternal, "Nachricht.txt", Nachricht)

Lesen:

Dim NachrichtStatus as Boolean
NachrichtStatus = file.readstring(file.DirInternal, "Nachricht.txt")

Herzliche Grüße

Carsten
:)-keine angst-sowas kann ich...
aber wenn ich den service stoppe dann ist leider immer noch servicestartat in aktion und startet es dann nochmal...-und die notification ist ja dann eh schon da
-edit soll ich dir ein beispiel projekt machen?- edit

— geändert am 20.10.2013 12:51:27

Posts vor dem 22.12.2014 sind von dem Vorgänger dieses Accounts

  • Forum-Beiträge: 33.139

20.10.2013 12:57:55 via App

Chris H.

-edit soll ich dir ein beispiel projekt machen?- edit
Ja mach mal. Mit B4A das Projekt packen und als Zip Datei schicken.

Herzliche Grüße

Carsten

— geändert am 20.10.2013 13:39:16

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

  • Forum-Beiträge: 33.139

20.10.2013 13:06:15 via Website

Hi,

wenn der User die Erinnerungen deaktivieren will, in der Activity einfach

1File.WriteString(File.DirInternal,"servicestart.txt",False)

Und im Service dann diese Datei lesen und auf True oder False prüfen:

1If File.Exists(File.DirInternal,"servicestart.txt") = True Then
2 If File.ReadString(File.DirInternal,"servicestart.txt") = True Then
3 StartServiceAt("", DateTime.Now + zeit * DateTime.TicksPerSecond, True)
4 Else
5 StopService("")
6 End If
7 Else
8 StopService("")
9 End If

Herzliche Grüße

Carsten

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

  • Forum-Beiträge: 745

20.10.2013 13:33:52 via Website

Carsten Müller
Hi,

wenn der User die Erinnerungen deaktivieren will, in der Activity einfach

1File.WriteString(File.DirInternal,"servicestart.txt",False)

Und im Service dann diese Datei lesen und auf True oder False prüfen:

1If File.Exists(File.DirInternal,"servicestart.txt") = True Then
2 If File.ReadString(File.DirInternal,"servicestart.txt") = True Then
3 StartServiceAt("", DateTime.Now + zeit * DateTime.TicksPerSecond, True)
4 Else
5 StopService("")
6 End If
7 Else
8 StopService("")
9 End If

Herzliche Grüße

Carsten
-p.s. falls du es noch nicht bemerkt hast- die email ist seit ca. 10 min eingetroffen...-und guten appetit :)

Posts vor dem 22.12.2014 sind von dem Vorgänger dieses Accounts

  • Forum-Beiträge: 745

20.10.2013 14:33:23 via Website

Chris H.
Carsten Müller
Hi,

wenn der User die Erinnerungen deaktivieren will, in der Activity einfach

1File.WriteString(File.DirInternal,"servicestart.txt",False)

Und im Service dann diese Datei lesen und auf True oder False prüfen:

1If File.Exists(File.DirInternal,"servicestart.txt") = True Then
2 If File.ReadString(File.DirInternal,"servicestart.txt") = True Then
3 StartServiceAt("", DateTime.Now + zeit * DateTime.TicksPerSecond, True)
4 Else
5 StopService("")
6 End If
7 Else
8 StopService("")
9 End If

Herzliche Grüße

Carsten
-p.s. falls du es noch nicht bemerkt hast- die email ist seit ca. 10 min eingetroffen...-und guten appetit :)
...-die zweite ist schon seit ca. 40 min da...
mfg

Posts vor dem 22.12.2014 sind von dem Vorgänger dieses Accounts

  • Forum-Beiträge: 33.139

20.10.2013 14:58:23 via Website

Hi Chris,

und ich habe Dir soeben eine Antwort geschickt mit dem überarbeiteten Code. Bitte nicht so drängeln, sonst verliere ich die Lust Dir zu helfen. Ich mache das hier völlig kostenlos und finde es schon reichlich dreist...

Zu Deinem zugesandten Code: Da stimmt alles mögliche nicht, was schlicht daran liegt, dass Du Grundlagen von Basic4Android noch nicht so richtig begriffen hast.
Was mich allerdings richtig ärgert ist, dass Du *nichts* von dem, was ich Dir hier seit Tagen antworte und empfehle, umsetzt.

Aber okay, ich habe Dir Deinen Code jetzt lauffähig gemacht (sorry, dass das sage und schreibe 40 Minuten gedauert hat) und hoffe, Du schaust Dir das in Ruhe an und versuchst, Zeile für Zeile zu verstehen. Einfach abschreiben ("läuft ja") und dann beim nächsten Mal wieder gegen die Wand rennen, ist nicht sonderlich zielführend.

Ich empfehle Dir, Dir erstens meinen B4A Workshop im Android User Magazin durchzuarbeiten und zweitens das B4A Handbuch auszudrucken und komplett durchzulesen, durchzuarbeiten und vor allem zu verstehen.

Herzliche Grüße
Carsten

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

  • Forum-Beiträge: 745

20.10.2013 15:06:20 via Website

Carsten Müller
Hi Chris,

und ich habe Dir soeben eine Antwort geschickt mit dem überarbeiteten Code. Bitte nicht so drängeln, sonst verliere ich die Lust Dir zu helfen. Ich mache das hier völlig kostenlos und finde es schon reichlich dreist...

Zu Deinem zugesandten Code: Da stimmt alles mögliche nicht, was schlicht daran liegt, dass Du Grundlagen von Basic4Android noch nicht so richtig begriffen hast.
Was mich allerdings richtig ärgert ist, dass Du *nichts* von dem, was ich Dir hier seit Tagen antworte und empfehle, umsetzt.

Aber okay, ich habe Dir Deinen Code jetzt lauffähig gemacht (sorry, dass das sage und schreibe 40 Minuten gedauert hat) und hoffe, Du schaust Dir das in Ruhe an und versuchst, Zeile für Zeile zu verstehen. Einfach abschreiben ("läuft ja") und dann beim nächsten Mal wieder gegen die Wand rennen, ist nicht sonderlich zielführend.

Ich empfehle Dir, Dir erstens meinen B4A Workshop im Android User Magazin durchzuarbeiten und zweitens das B4A Handbuch auszudrucken und komplett durchzulesen, durchzuarbeiten und vor allem zu verstehen.

Herzliche Grüße
Carsten
Vielen dank...
drängeln wollte ich nicht sondern ich dachte du würdest auf meine mail warten...-und dass du sie nicht bemerkt hast
"Was mich allerdings richtig ärgert ist, dass Du *nichts* von dem, was ich Dir hier seit Tagen antworte und empfehle, umsetzt. "
Warum, das habe ich dir schon beantwortet aber hier nochmal:
Ich habe deinen Code noch nicht eingebracht, um den Code möglichst klein zu halten, da du ja nicht ewig so etwas durchlesen willst...
mfg

Posts vor dem 22.12.2014 sind von dem Vorgänger dieses Accounts