Arka planda çalışma

FireMonkey ve Mobil uygulama (iOS, Android, Windows Phone) ile ilgili sorularınızı bu foruma sorabilirsiniz.
Cevapla
Hashirama
Üye
Mesajlar: 81
Kayıt: 26 Kas 2013 03:42

Arka planda çalışma

Mesaj gönderen Hashirama »

Merhaba Arkadaşlar
Aşağıdaki kod geri tuşuna basarak programı ekrandan kaldırır ve arka planda çalışmaya devam etmesini sağlar, ancak burada ki sorunumuz başka programlar çalıştırınca RAM de yeterli hafıza kalmamakta ve programımız kapanmaktadır. Programı sürekli çalıştırabilmek için ne yapabiliriz ?

Kod: Tümünü seç

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char;
Shift: TShiftState);
Var
keyboard: IFMXVirtualKeyboardService;
begin
if (Key = vkHardwareBack) then
Begin

    keyboard := TPlatformServices.Current.GetPlatformService(IFMXVirtualKeyboardService) as IFMXVirtualKeyboardService;

    if vksVisible in keyboard.VirtualKeyBoardState then   Exit;
    
    MainActivity.moveTaskToBack(True);

    Key := 0;

End;

end;
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Arka planda çalışma

Mesaj gönderen mrmarman »

Merhaba.

- İstediğin şey üzerine az olan vaktimden bir kesit ayırdım ama başarılı olamadım.

- Developer Android.COM linkinde tanımlandığı gibi bir Service Application yazmak gerekiyor.

- Ben Blong Blog linkindeki örneği denedim, çalıştırdım ama tabiri doğruysa denediğim proje sadece bitkisel hayatta kalabildi. Yani ..

(1) Eklediğim timer arka fonda çalışmaz oldu. Öne alınca çalıştı.
(2) Sistemden gelen olan olmayan tüm olaylar ile tetiklendikçe SQLite veritabanına log kaydı yapsın dedim yine başarılı olamadım. Ama örnek LogCAT'a her tetiklendiği durumu yollayabiliyor.

- Sistemde Uygulama Yöneticisinde ÇALIŞAN kısmında arkada çalıştığını görüyorum, Android cihazdaki haızadaki tüm programları kaldır dediğimde yeniden kendiliğinden başlayor onda da sorun yok. Ama çalışan uygulamam suspend mode durumunda bekliyor.

- Anlamadığım, LogCAT ile sistem olaylarını arka fonda okuyabildiğimiz halde, oraya log gönderen satıra kendi SQLite veritabanına kaydet dediğimde neden olmuyor bunu henüz çözümleyemedim. Hata da vermiyor.

- Verdiğim ilk linkte THREAD mantığı değildir diyor. Hadi ola ki aynı anda SQLite veritabanını defalarca açar dedim, SQLite veritabanını paylaşıma açık tutup aynı anda birden fazla projenin erişmesine müsaade ettim. Onu bile düşündük ama sonuç hüsran.

- Bir ara projeyi iyice sadeleştirip öyle yeniden deniycem. Zaten sonucu kaynak kodlarıyla buradan ve diğer forumdan yine paylaşıcam. (daha önce restart edildiğinde yeniden başlama örneğini de vermiştim, bu proje ile ilişkili olarak kullanılacak birinci adım oydu.)

- Sizler de birşeyler bulursanız bir satır bişeyler yazın belki bir çıkış noktası bulabiliriz. :idea:
Resim
Resim ....Resim
Hashirama
Üye
Mesajlar: 81
Kayıt: 26 Kas 2013 03:42

Re: Arka planda çalışma

Mesaj gönderen Hashirama »

Hocam bu konu ile ilgili bir gelişme var mı ?
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Arka planda çalışma

Mesaj gönderen mrmarman »

Merhaba.

- Başka bir projem var. Bitince buna geri dönücem.

- Çalışır durumda kalma konusunda ilerleme katettim. Şöyle ki, istediğim şey

(1) Belli aralıklarla SMS kontrolü yapsın,
(2) ilgilenilecek türden, daha önce tanımladığım protokole sahip bir SMS gelmiş ise bununla tetiklenip veritabanına yazsın istiyorum.
(3) Ekranda bir şey yapmak niyetim yok. Sadece başka üçüncü bir projem var. Asıl projem budur.
(4) Onunla da periyodik olarak aynı veritabanına ikinci bir kanaldan bakıyorum,
(5) Bir gelişme olmuşsa web üzerinden WSDL ile ana bilgisayara direkt erişim veya localden ekrana mesaj ile veya cevap SMS yollamak şeklinde gereğini yapsın gibi bir düzenek kurdum.

- Şu an çalışıyor. Şimdi onu rafa kaldırdım uygun zaman bulunca fazlalıkları atıp bütünlüğünü sağlamak için projeye tekrar geri dönücem.
- Kendime özel düşündüğüm bir proje olduğundan şu an acelem yok. Size şu aşamada sadece tavsiye ve sonuç bildirimi konusunda yardımcı olabilirim.
- Projem bitince, verdiğim emek çerçevesinde ücretli veya ücretsiz olarak tekniği know how olarak paylaşıp paylaşmayacağım konusuna daha sonra karar vericem. :idea:
Resim
Resim ....Resim
Soft22
Üye
Mesajlar: 4
Kayıt: 01 Nis 2014 02:29

Re: Arka planda çalışma

Mesaj gönderen Soft22 »

Merhaba!

Şimdi biliyorsunuz,Android kritik hafıza durumunda bazı programları otomotik iptal edebilir (Process Killing).

Bunu engellemek için, yapman gereken Android OS'e bu uygulamanın (Process) önemli olduğunu , ve hiç bir zaman iptal edilmemesi gerektiğini bildirmeniz gerekmektedir.

Android'da bu StartForeground fonksiyonu kullanarak yapılıyor, müsait bir zamanda örnek yazarım Inş. Yapman gereken kısaca,Windows'da SetPriority ile uygulamanın (Process) önemli olduğunu bildiriyorduk,aynı şekilde Android'e bildirmen gerekiyor.

Umarım birazda olsa yardımcı olabilmişimdir .
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Arka planda çalışma

Mesaj gönderen mrmarman »

Merhaba.

- Hocam sen bunu başarmışsan süpersin... Ne diyeyim. Ben de boşuna JAVA Class import edip servis yazmaya çalışmışım demektir... :bravo:

- Google taramasıyla bir makaleden esinlenip bu satırları denemeden yazmadın inşallah. Çünkü hayal kırıklığı olur. Çalışan örneğini en kısa zamanda bekliyoruz. :idea:
Soft22 yazdı:Merhaba!

Şimdi biliyorsunuz,Android kritik hafıza durumunda bazı programları otomotik iptal edebilir (Process Killing).

Bunu engellemek için, yapman gereken Android OS'e bu uygulamanın (Process) önemli olduğunu , ve hiç bir zaman iptal edilmemesi gerektiğini bildirmeniz gerekmektedir.

Android'da bu StartForeground fonksiyonu kullanarak yapılıyor, müsait bir zamanda örnek yazarım Inş. Yapman gereken kısaca,Windows'da SetPriority ile uygulamanın (Process) önemli olduğunu bildiriyorduk,aynı şekilde Android'e bildirmen gerekiyor.

Umarım birazda olsa yardımcı olabilmişimdir .
Resim
Resim ....Resim
Kullanıcı avatarı
igny
Üye
Mesajlar: 54
Kayıt: 14 Mar 2008 04:03

Re: Arka planda çalışma

Mesaj gönderen igny »

Push notification olayını yapabilen varsa nasıl yaptığı ile ilgili püf noktalarını paylaşabilirmisiniz.Keşke Android notification olayıda ios notification gibi daha pratik olsaydı.
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Re: Arka planda çalışma

Mesaj gönderen hi_selamlar »

S.A.

Uzun bir süre olmuş ama... :D

Bu konu benim içinde gerekli.
Konu hakkında bir gelişme kaydeden varmı acaba ?

Teşekkürler...
Herkes cahildir, bazi konularda.
Cevapla