Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Android Servis Hk.
#1
Exclamation 
İyi geceler,


Bir proje üzerinde çalışmaktayım. Son bölümlere gelmiş bulunmaktayım. Eskiden forumda açtığım bir konu vardı "Indy" sorunuydu. Bu sorunu çözemeyince metot değiştirip MySQL üzerinden çalışmaya başladım. Sorun çözülürse geri eski metoda geri döneceğim. Mevzuya gelecek olursam. Oluşturmuş olduğum bir servis mevcut. Bu servis MySQL tablosunda gelecek olan yeni kayıtlardan arka plandan(program kapalı iken) haberdar edecek. Jim McKeeth'in videosunu izledim ve dediklerini harfiyen yaptım. Servise baktığımda çalışıyor problem yok. Lakin aklıma takılan konu şu; 

1) DM formu var servis üzerinde bildiğiniz üzere, bu forum üzerinden mi bildirim sorgularını gerçekleştireceğim? Yoksa normal form(ana projenin ana formu) üzerinden mi?

2) Sürekli yenilemeyi Timer yolundan başka nasıl yapabilirim? (Veritabanında ki kayıtları)


NOT: FMX "Service" konusunda pek hakim olduğum söylenemez, yeni adımlarım sayılır Smile


Saygılarımla,
İyi çalışmalar.
May the force be with you!
Cevapla
#2
(05-02-2018, Saat: 00:59)hyperxman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Olİyi geceler,


Bir proje üzerinde çalışmaktayım. Son bölümlere gelmiş bulunmaktayım. Eskiden forumda açtığım bir konu vardı "Indy" sorunuydu. Bu sorunu çözemeyince metot değiştirip MySQL üzerinden çalışmaya başladım. Sorun çözülürse geri eski metoda geri döneceğim. Mevzuya gelecek olursam. Oluşturmuş olduğum bir servis mevcut. Bu servis MySQL tablosunda gelecek olan yeni kayıtlardan arka plandan(program kapalı iken) haberdar edecek. Jim McKeeth'in videosunu izledim ve dediklerini harfiyen yaptım. Servise baktığımda çalışıyor problem yok. Lakin aklıma takılan konu şu; 

1) DM formu var servis üzerinde bildiğiniz üzere, bu forum üzerinden mi bildirim sorgularını gerçekleştireceğim? Yoksa normal form(ana projenin ana formu) üzerinden mi?

2) Sürekli yenilemeyi Timer yolundan başka nasıl yapabilirim? (Veritabanında ki kayıtları)


NOT: FMX "Service" konusunda pek hakim olduğum söylenemez, yeni adımlarım sayılır Smile


Saygılarımla,
İyi çalışmalar.

Merhaba,
1- Servislerde genellikle form gibi kullanıcı arayüzleri yer almaz. Servisteki asıl amaç; arka planda uygulama yaşam döngüsünün kalıcı olmasını sağlamaktır. Bundan dolayı servis işlemlerinde sistem kaynaklarını aşırı tüketen işlemlerden kaçınılmalı, yalnızca ihtiyaç olan bilgiler veya sorgular yapılmalıdır. OS, aşırı sistem kaynaklarını tüketen uygulamaları yakalar ve son kullanıcıyı uyarır, hatta güvensiz uygulama olarak da nitelendirebilir. 
Servis işlemlerinde genellikle tekil veritabanı sorgulamaları, uzun sürmeyecek lokal sorgulamalar (disk yapısı, dosya sisteminde arama, cihaz bilgilerini alma veya sensör yapılarını kulanama gibi), uzak sunucu veya ws işlemleri (kimlik doğrulama, GPS bilgilerini alma, bluetooth sinyalleriyle farklı bir cihaz ile eşleşme)

2- Daha önce de birçok defa değindiğim gibi mobil uygulamalar veri tabanı işlemleri veya yoğun sorgulamalara karşı çok kırılgandır. Bu nedenle lokal işlemden ziyade tabloda bir güncelleme olup olmadığını algılamak için Database Event'ları oluştururarak ve uygulama tarafında bir DBEvent ile bu bildirimi yakalayarak işlem yapmanız daha doğru olacaktır.

Not: iOS hedef platformunda, Android'te olduğu gibi doğrudan bir servis yazılmıyor. iOS platformunda işlemler kategorize edilmiş, hangi işlemin arka planda kalıcı olmasını isterseniz, o işleme onay vermeniz yeterli oluyor. Tabi bir de dağıtım aşamasında sertifika üzerinde bir güncelleme yapmak gerekiyor.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#3
(05-02-2018, Saat: 08:21)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(05-02-2018, Saat: 00:59)hyperxman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Olİyi geceler,


Bir proje üzerinde çalışmaktayım. Son bölümlere gelmiş bulunmaktayım. Eskiden forumda açtığım bir konu vardı "Indy" sorunuydu. Bu sorunu çözemeyince metot değiştirip MySQL üzerinden çalışmaya başladım. Sorun çözülürse geri eski metoda geri döneceğim. Mevzuya gelecek olursam. Oluşturmuş olduğum bir servis mevcut. Bu servis MySQL tablosunda gelecek olan yeni kayıtlardan arka plandan(program kapalı iken) haberdar edecek. Jim McKeeth'in videosunu izledim ve dediklerini harfiyen yaptım. Servise baktığımda çalışıyor problem yok. Lakin aklıma takılan konu şu; 

1) DM formu var servis üzerinde bildiğiniz üzere, bu forum üzerinden mi bildirim sorgularını gerçekleştireceğim? Yoksa normal form(ana projenin ana formu) üzerinden mi?

2) Sürekli yenilemeyi Timer yolundan başka nasıl yapabilirim? (Veritabanında ki kayıtları)


NOT: FMX "Service" konusunda pek hakim olduğum söylenemez, yeni adımlarım sayılır Smile


Saygılarımla,
İyi çalışmalar.

Merhaba,
1- Servislerde genellikle form gibi kullanıcı arayüzleri yer almaz. Servisteki asıl amaç; arka planda uygulama yaşam döngüsünün kalıcı olmasını sağlamaktır. Bundan dolayı servis işlemlerinde sistem kaynaklarını aşırı tüketen işlemlerden kaçınılmalı, yalnızca ihtiyaç olan bilgiler veya sorgular yapılmalıdır. OS, aşırı sistem kaynaklarını tüketen uygulamaları yakalar ve son kullanıcıyı uyarır, hatta güvensiz uygulama olarak da nitelendirebilir. 
Servis işlemlerinde genellikle tekil veritabanı sorgulamaları, uzun sürmeyecek lokal sorgulamalar (disk yapısı, dosya sisteminde arama, cihaz bilgilerini alma veya sensör yapılarını kulanama gibi), uzak sunucu veya ws işlemleri (kimlik doğrulama, GPS bilgilerini alma, bluetooth sinyalleriyle farklı bir cihaz ile eşleşme)

2- Daha önce de birçok defa değindiğim gibi mobil uygulamalar veri tabanı işlemleri veya yoğun sorgulamalara karşı çok kırılgandır. Bu nedenle lokal işlemden ziyade tabloda bir güncelleme olup olmadığını algılamak için Database Event'ları oluştururarak ve uygulama tarafında bir DBEvent ile bu bildirimi yakalayarak işlem yapmanız daha doğru olacaktır.

Not: iOS hedef platformunda, Android'te olduğu gibi doğrudan bir servis yazılmıyor. iOS platformunda işlemler kategorize edilmiş, hangi işlemin arka planda kalıcı olmasını isterseniz, o işleme onay vermeniz yeterli oluyor. Tabi bir de dağıtım aşamasında sertifika üzerinde bir güncelleme yapmak gerekiyor.

Merhabalar,

Üstat öncelikle değerli bilgiler için teşekkürler. Servis bölümünde zorlamadan, bu işlemi nasıl gerçekleştireceğim? Veya gerçekleştirmemem mi lazım?

Teşekkürler,
Iyi çalışmalar.
May the force be with you!
Cevapla
#4
Veri tabanı üzerinde event oluşturun ve uygulama servis modülünde bu event'ı dinleyin (FD kullanıyorsanız TFDEventAlert, UniDac kullanıyorsanız TUniAlerter bileşeni işinizi görecektir). 
Servis event tarafından bir geri dönüş aldığında ise istediğiniz metodu uygulayabilirsiniz.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#5
(05-02-2018, Saat: 09:54)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlVeri tabanı üzerinde event oluşturun ve uygulama servis modülünde bu event'ı dinleyin (FD kullanıyorsanız TFDEventAlert, UniDac kullanıyorsanız TUniAlerter bileşeni işinizi görecektir). 
Servis event tarafından bir geri dönüş aldığında ise istediğiniz metodu uygulayabilirsiniz.

Teşekkürler üstat deneyeceğim akşam Smile
May the force be with you!
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  [Ödüllü Soru] FMX Android projede input alan ve sanal klavye konumu Abdullah ILGAZ 1 70 Dün, Saat: 12:37
Son Yorum: ssahinoglu
  Rad Studio C++ Android iile Editte Barkod Okutma Hatası Ahmet YILMAZ 1 380 19-07-2018, Saat: 17:01
Son Yorum: Abdullah ILGAZ
  android media player arsl01 2 65 19-07-2018, Saat: 07:55
Son Yorum: arsl01
  [Ödüllü Soru] FMX Android projede ekranın sürekli açık bırakılması Abdullah ILGAZ 1 61 17-07-2018, Saat: 12:14
Son Yorum: Cyber
  Android APİ sorunu - Google Play BY-HAYALET 18 583 09-07-2018, Saat: 09:47
Son Yorum: quiet1day



Konuyu Okuyanlar: 1 Ziyaretçi