Değerli arkadaşlar ; mobil işletim sistemleri sistem kaynaklarını kullanmaya çok izin vermiyor , manul olay yönetici oluşturup kontrol etmeye çalışıyoruz; uygulamanın kendiliğinden kapanmaması için bir yönetici oluşturdum fakat yine de sorun çıkıyor . Önerisi olan var mı?
Server REST windows client mobil android database frirebird haberleşme data set JSON
function TfMain.MobilOlaylar(Olaylar: TApplicationEvent;
sender: TObject): Boolean;
begin
case Olaylar of
TApplicationEvent.FinishedLaunching: ;
TApplicationEvent.BecameActive: ;
TApplicationEvent.WillBecomeInactive:
begin
showmessage('Uyku moduna geçtim') ; //uygulama arka plana alınırken buraya ne yazmam gerekli
Abort;
end;
TApplicationEvent.EnteredBackground: ; //uygulama arka plana alındığında
TApplicationEvent.WillBecomeForeground: ;
TApplicationEvent.WillTerminate: ; // uygulama sonlandığında
TApplicationEvent.LowMemory: ;
TApplicationEvent.TimeChange: ;
TApplicationEvent.OpenURL: ;
end;
result := true;
end;
end.
Bildiğim kadarıyla hiçbir mobil platform normal uygulamanın sürekli çalışmasına izin vermiyor. Pil tasarrufu ve sistemin hızlı çalışmasını sebep gösteriyorlar.
Mobil uygulama çok geliştirmedim. Tecrübem yok denecek kadar az. Android için eskiden background service gerekiyordu. Son sürümlerinde artık "foreground service" gerekiyor. Servis kullanarak daha uzun süre işlem yapmanız mümkün. Ancak ana uygulama ile servis farklıdır. Servis olsa dahi sürekli çalışır mı bunu da bilmiyorum.
iOS tarafı ile ilgili de bilgim yok. Ancak iOS daha sıkı kontrollere sahip diye okumuştum.
Mobil platformlarda uygulamalar sürekli çalışmadan gerektiğinde devreye girmesini sağlayacak parametre gönderebileceğiniz notifikasyon sistemi var. Bu sistem işletim sistemi seviyesinde çalışıp uygulamanızı tetiklemeye yardımcı olabiliyor. Ancak notifikasyonlar da anlık işlemler olmuyor. Gecikebiliyor ya da telefona hiç iletilmeyebiliyor.
Size neden sürekli uygulamanın çalışıyor durumda olmasını istiyorsunuz?
Ben bu tür işlemlerde bağlı kalma zorunluğu olduğuna inanmıyorum.
Mesela mobil tarafı REST web servis ile çalışılıp ilk kullanıcı adı ve şifre bilgilerini akılda tutup (INI dosyasına saklanabilir mesela) sonraki işlemlerde token süresi geçmiş ise otomatik login işlemi yapılıp ardından asıl ne yapılacak ise yapılır.
Mobil işletim sistemi, uygulamayı arka plana almak üzereyken : Uygulama Olayı TApplicationEvent.WillBecomeInactive devreye giriyor
hemen ardından MainFormun OnDeactivate olayı tetikleniyor ve uygulamayı işletim sistemi kapatmıyor.
İşine yarayan olur diye yazmak istedim.