Delphi Can

Orjinalini görmek için tıklayınız: [Çözüldü] FMX Servis Kalıcı Olarak Çalıştırma
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Selamlar,

FMX Projem mevcut. Projemde 1 adet servis var ve çalışmakta. Servis MySQL ile sorgu yapmakta. Ana uygulama açık iken bir problem yok ama tam olarak ana uygulamayı kapatınca sorgu kesiliyor ve bildirim gelmiyor. Birçok yere başvurdum bu konunun çözümü için ama bir çözüme kavuşamadım. 

StackOverflow Konu Linki [İncelemek isteyenler için]

Konunun daha iyi anlaşılması için GIF Animasyonu;

nOjO55.gif



Bir kullanıcı TTask yerine CreateAnonymousThread kullanmamı söyledi fakat yine işe yaramadı. Yardımlarınızı bekler durumdayım.

Yardımcı olan herkese şimdiden teşekkürler.

Teşekkürler,
İyi çalışmalar.
Selamlar,

Geç oldu biraz;

Method: https://github.com/halilhanbadem/delphi-...ice-method

Bu method - ki kullanımı issue'de mevcut - küçük ama çözüm getiriyor. Bu method ile birlikte android uygulamanız kapatılsa bile (genelde bildirim için bu işlem uygulanır) bildirim gönderimleri için verileri çekebilirsiniz.

Kullanım: https://github.com/halilhanbadem/delphi-...-405791198

İyi çalışmalar.
10.3.3 Community sürümüyle, android 9 ve 10 cihazda (ben ikisinde deneyebildim) yukardaki yöntem işe yaramıyor, yalnız uygulama açıkken çalışıyor, Kastri'nin örnekleri de pek stabil çalışmıyor ya da ben çalıştıramadım, bu konuda farklı bir çözümü olan var mı arkadaşlar?
(31-01-2021, Saat: 15:31)savasabd Adlı Kullanıcıdan Alıntı: [ -> ]10.3.3 Community sürümüyle, android 9 ve 10 cihazda (ben ikisinde deneyebildim) yukardaki yöntem işe yaramıyor, yalnız uygulama açıkken çalışıyor, Kastri'nin örnekleri de pek stabil çalışmıyor ya da ben çalıştıramadım, bu konuda farklı bir çözümü olan  var mı arkadaşlar?

push tarzı notification ile zaman zaman uygulamayı google servislerine tetikletmek gibi duruyor, bunun haricinde servisi hangup olarak tutmanız, cihaz belleği dolma gibi durumlarda zorla bellekden atılmasına engel olamaz.

uygulama içinde cihaz başlangıcında çalışacak servis barındır, bu servis zaman zaman sunucuya alive mesajı gönderir, sunucu belli bir süre alive mesajını alamadığı client leri uyandırır ama ekranda notification görünmez, servis tekrar tetiklenir.
(31-01-2021, Saat: 16:16)hayalyilmaz43 Adlı Kullanıcıdan Alıntı: [ -> ]
(31-01-2021, Saat: 15:31)savasabd Adlı Kullanıcıdan Alıntı: [ -> ]10.3.3 Community sürümüyle, android 9 ve 10 cihazda (ben ikisinde deneyebildim) yukardaki yöntem işe yaramıyor, yalnız uygulama açıkken çalışıyor, Kastri'nin örnekleri de pek stabil çalışmıyor ya da ben çalıştıramadım, bu konuda farklı bir çözümü olan  var mı arkadaşlar?

push tarzı notification ile zaman zaman uygulamayı google servislerine tetikletmek gibi duruyor, bunun haricinde servisi hangup olarak tutmanız, cihaz belleği dolma gibi durumlarda zorla bellekden atılmasına engel olamaz.

uygulama içinde cihaz başlangıcında çalışacak servis barındır, bu servis zaman zaman sunucuya alive mesajı gönderir, sunucu belli bir süre alive mesajını alamadığı client leri uyandırır ama ekranda notification görünmez, servis tekrar tetiklenir.
Ama Android Studyo  tarafında gayet stabil çalışıyor, sorun Delphi,'de gibime geliyor.
Aslında bu konuyu ben gibi bir çok kişi de merak ettiğini düşünüyorum. Forumda bunla ilgili bir çok soru ve çözüldü görünerek kapanan konuyu okudum. Fakat net birşey bulup anlayamadım. Konu içinde konu dallanmış veya ayrı linkler, pas dosyaları paylaşılmış. Buradan şunumu anlamalıyım, sadece delphi bunu kendi içinde yapamıyor mu ? Örneği bir formun oncreate metodunu kullanır gibi uygulama kapatıldığında arka planda çalış gibi bir metodu yok mu.  Github gibi kaynaklardan ek pas dosyaları veya binbir takla atarak tetikleme yoluyla hizmeti uyandırıp öyle mi yapmalıyız ?
Ben mi yanlış anlıyorum ?  Bilen arkadaşlarımız ufak bir örnekle bize gösterip öğrenmemize yardımcı olabilir mi ?
Arama sonuçlarını gezip okurken neyi aradığımı unuttum artık biggrin.pngbiggrin.png
Teşekkürler.
(12-01-2022, Saat: 14:25)CesuR Adlı Kullanıcıdan Alıntı: [ -> ]Aslında bu konuyu ben gibi bir çok kişi de merak ettiğini düşünüyorum. Forumda bunla ilgili bir çok soru ve çözüldü görünerek kapanan konuyu okudum. Fakat net birşey bulup anlayamadım. Konu içinde konu dallanmış veya ayrı linkler, pas dosyaları paylaşılmış. Buradan şunumu anlamalıyım, sadece delphi bunu kendi içinde yapamıyor mu ? Örneği bir formun oncreate metodunu kullanır gibi uygulama kapatıldığında arka planda çalış gibi bir metodu yok mu.  Github gibi kaynaklardan ek pas dosyaları veya binbir takla atarak tetikleme yoluyla hizmeti uyandırıp öyle mi yapmalıyız ?
Ben mi yanlış anlıyorum ?  Bilen arkadaşlarımız ufak bir örnekle bize gösterip öğrenmemize yardımcı olabilir mi ?
Arama sonuçlarını gezip okurken neyi aradığımı unuttum artık biggrin.pngbiggrin.png
Teşekkürler.

Github üzerinde paylaştığım örneğe baktım. Uzun zaman geçti acaba Java ile ek bir class mı kullandım diye... Baktım yok. 
https://github.com/halilhanbadem/delphi-...ice-method
Burada ilgili kod var.
Dilerseniz aşağıdaki bağlantıdan ise örnek anlatıma ulaşabilirsiniz;
https://github.com/halilhanbadem/delphi-...-405791198
Üstünden 3 yıl geçmiş tabi çalışıp çalışmadığını bilmiyorum. Hata alsaydınız hatadan bahsederdiniz. Sanırım siz kodu bile çalıştıramamışsınız. 
Tavsiyem ilk olarak Android yapısı üzerinde biraz daha çalışmanız. Suçu direkt Delphi'ye atmak; Delphi platformunda şahsen çok hoşlanmadığım bir şey. 
Delphi ile çok zorlanıyorsanız mobil uygulamalarınızı farklı teknolojiler ile geliştirebilirsiniz.
Tamda o örneği paylaştığınız konunuza cevap yazmıştım. Yukarıda ki sözüm size değil alındıysanız özür dilerim. Ne sizi ne başkasını kasıt ettim. Anlatmak istediğim olayın ne kadar dolaylı yoldan gittiğiydi. Yada ben çıkan arama sonuçlarından öyle görüp yanılmış yanlış ifade etmiş olabilirim. Yoksa böyle bir soruyu neden sorayım ki ?
Sizin verdiğiniz cevaba bakarsak yine aynı sonuca çıkıyoruz.  Neden ?
Bu işlemi yapabilmek için binbir takla atmak mı gerekiyor delphi tarafında daha basit yolu yok mu  cümleme bakarsanız,
sizin sunmuş olduğunuz çözüm belli sürüler ile bir prosedürü çalıştırarak programı arka planda tutuyor.
İşte ben bu tür çalıştırma şeklinin bana doğru gelmediğini , delphi tarafında böyle mi olması gerekli demek için bu soruyu sordum ama görüyorum ki yanlış anlaşılmışım. Yukarıdaki cevabımı bir kez daha gözden geçirirseniz ne Delphi yi ne paylaşanları suçlayan da yok. Sürekli bu böylemi olmalı , böyle mi yapmalıyız diye anlamak için sorulmuş sorular var.
Emin olun ki , delphi den başka teknoljiler kullanarak yazmayı bende akıl edebilirim... Ama bunu Delphi formunda sormam bu tavsiyenize cevap olduğunu düşünüyorum. Amaç delphi de bunu nasıl yaparım ?

Konuya cevap olarak bunu paylaştığınız için teşekkürler. Konu başlığına bakıp ve çözüldüğünü görünce denedim fakat uygulama kapatılınca çalışmıyor. Sizde paylaştığınızı bir deneyin göreceksiniz ki sürekli çalışan bir servis olmayacak. Bundan siz emin olmadan bana tavsiye etmeniz benide yanıltır.

Bu arada, github üzerinde paylaştığınız kodu boş bir projede test ederseniz prosedür tanımlamasında gözünüzden kaçan ufak bir hata olmuş , bilen kişiler için düzeltmesi kolay ama acemi arkadaşları yorabilir.
Kolay gelsin