{"id":33004,"date":"2025-10-28T10:01:44","date_gmt":"2025-10-28T07:01:44","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber\/"},"modified":"2025-10-28T10:01:44","modified_gmt":"2025-10-28T07:01:44","slug":"harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber\/","title":{"rendered":"HarmonyOS Next&#8217;te Arka Plan G\u00f6revleri: Kapsaml\u0131 Rehber"},"content":{"rendered":"<p><body><\/p>\n<p>Modern mobil uygulamalar, kullan\u0131c\u0131ya kesintisiz ve ak\u0131c\u0131 bir deneyim sunmak i\u00e7in arka planda bir\u00e7ok i\u015flemi sessizce y\u00fcr\u00fct\u00fcr. Peki, HarmonyOS Next gibi yeni nesil bir i\u015fletim sisteminde bu arka plan g\u00f6revlerini verimli, g\u00fcvenli ve batarya dostu bir \u015fekilde nas\u0131l y\u00f6netebiliriz? Bu makale, HarmonyOS Next&#8217;in arka plan g\u00f6revleri mimarisini, temel kavramlar\u0131n\u0131 ve uygulama y\u00f6ntemlerini derinlemesine inceleyerek geli\u015ftiricilere kapsaml\u0131 bir rehber sunmaktad\u0131r.<\/p>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn rekabet\u00e7i uygulama pazar\u0131nda, kullan\u0131c\u0131 beklentileri her zamankinden daha y\u00fcksek. Uygulamalar\u0131n sadece \u00f6n planda \u00e7al\u0131\u015f\u0131rken de\u011fil, arka planda da g\u00f6revlerini sorunsuz bir \u015fekilde yerine getirmesi beklenir. \u00d6rne\u011fin, bir mesajla\u015fma uygulamas\u0131 yeni mesajlar\u0131 arka planda senkronize etmeli, bir navigasyon uygulamas\u0131 konum g\u00fcncellemelerini takip etmeli veya bir e-posta istemcisi d\u00fczenli olarak yeni e-postalar\u0131 kontrol etmelidir. Bu t\u00fcr i\u015flemlerin, uygulaman\u0131n \u00f6n planda olmad\u0131\u011f\u0131 zamanlarda dahi kesintisiz bir \u015fekilde devam etmesi, kullan\u0131c\u0131 deneyiminin anahtar\u0131d\u0131r. Aksi takdirde, kullan\u0131c\u0131lar uygulamay\u0131 her a\u00e7t\u0131\u011f\u0131nda beklemek zorunda kal\u0131r, bu da memnuniyetsizli\u011fe yol a\u00e7ar. Ancak bu s\u00fcreklili\u011fi sa\u011flamak, beraberinde \u00f6nemli zorluklar\u0131 da getirir: ba\u015fta enerji t\u00fcketimi ve sistem kaynaklar\u0131n\u0131n verimli kullan\u0131m\u0131 olmak \u00fczere.<\/p>\n<p>HarmonyOS Next, da\u011f\u0131t\u0131k yap\u0131s\u0131yla farkl\u0131 cihazlarda ayn\u0131 uygulama deneyimini sunma vizyonuna sahiptir. Bu vizyon, arka plan g\u00f6revlerinin y\u00f6netimini daha da kritik hale getirir. Ak\u0131ll\u0131 telefonlardan giyilebilir cihazlara, tabletlerden ak\u0131ll\u0131 televizyonlara kadar geni\u015f bir yelpazede \u00e7al\u0131\u015fan uygulamalar\u0131n, her cihaz\u0131n kendi \u00f6zel k\u0131s\u0131tlamalar\u0131na (pil \u00f6mr\u00fc, i\u015flem g\u00fcc\u00fc, a\u011f ba\u011flant\u0131s\u0131 vb.) uyum sa\u011flayarak arka planda g\u00f6rev yapabilmesi gerekir. Bu ba\u011flamda, HarmonyOS Next, geli\u015ftiricilere g\u00fc\u00e7l\u00fc ve esnek ara\u00e7lar sunarak bu zorluklar\u0131n \u00fcstesinden gelmelerine yard\u0131mc\u0131 olmay\u0131 ama\u00e7lar.<\/p>\n<p>Arka plan g\u00f6revlerinin etkin y\u00f6netimi, uygulaman\u0131z\u0131n genel performans\u0131, kullan\u0131c\u0131 memnuniyeti ve hatta uygulaman\u0131z\u0131n marketteki s\u0131ralamas\u0131 \u00fczerinde do\u011frudan bir etkiye sahiptir. Zira, bataryay\u0131 h\u0131zla t\u00fcketen veya sistemi yava\u015flatan uygulamalar, kullan\u0131c\u0131lar taraf\u0131ndan h\u0131zla kald\u0131r\u0131l\u0131r. Dolay\u0131s\u0131yla, HarmonyOS Next platformunda ba\u015far\u0131l\u0131 olmak isteyen her geli\u015ftiricinin, arka plan g\u00f6revlerinin dinamiklerini ve en iyi uygulama y\u00f6ntemlerini anlamas\u0131 elzemdir. Bu makale boyunca, bu kritik konuyu ad\u0131m ad\u0131m inceleyecek ve uygulamal\u0131 \u00f6rneklerle konuya hakim olman\u0131z\u0131 sa\u011flayaca\u011f\u0131z.<\/p>\n<h2>Arka Plan G\u00f6revleri Tam Olarak Ne Anlama Geliyor ve HarmonyOS Next&#8217;in Yakla\u015f\u0131m\u0131 Nedir?<\/h2>\n<p>Arka plan g\u00f6revleri, bir uygulaman\u0131n kullan\u0131c\u0131 aray\u00fcz\u00fc ile do\u011frudan etkile\u015fimde bulunmadan veya uygulaman\u0131n \u00f6n planda aktif olarak \u00e7al\u0131\u015fmad\u0131\u011f\u0131 durumlarda ger\u00e7ekle\u015ftirdi\u011fi i\u015flemlerdir. Geleneksel olarak, bu t\u00fcr g\u00f6revler veri senkronizasyonu, bildirim g\u00f6nderme, konum takibi, dosya indirme\/y\u00fckleme ve periyodik veri g\u00fcncellemeleri gibi alanlarda kullan\u0131l\u0131r. \u0130\u015fletim sistemleri, cihaz\u0131n pil \u00f6mr\u00fcn\u00fc korumak ve genel sistem performans\u0131n\u0131 optimize etmek amac\u0131yla arka plan etkinliklerini s\u0131k\u0131 bir \u015fekilde y\u00f6netir. Her uygulaman\u0131n s\u0131n\u0131rs\u0131zca arka planda \u00e7al\u0131\u015fmas\u0131na izin verilmesi, k\u0131sa s\u00fcrede cihaz\u0131n bataryas\u0131n\u0131n bitmesine ve sistemin yava\u015flamas\u0131na neden olabilir.<\/p>\n<p>HarmonyOS Next, bu dengeyi sa\u011flamak i\u00e7in modern ve entegre bir yakla\u015f\u0131m benimser. Platformun temelinde yatan da\u011f\u0131t\u0131k mimari, arka plan g\u00f6revlerinin farkl\u0131 cihazlar aras\u0131nda ak\u0131ll\u0131ca payla\u015ft\u0131r\u0131lmas\u0131na veya en uygun cihazda y\u00fcr\u00fct\u00fclmesine olanak tan\u0131r. \u00d6rne\u011fin, bir ak\u0131ll\u0131 saatte batarya t\u00fcketimi \u00e7ok y\u00fcksek olacak bir veri senkronizasyon g\u00f6revi, e\u011fer m\u00fcmk\u00fcnse daha g\u00fc\u00e7l\u00fc ve daha uzun pil \u00f6mr\u00fcne sahip bir telefonda tetiklenebilir. Bu, HarmonyOS Next&#8217;in &#8220;her \u015feyin birbirine ba\u011flanmas\u0131&#8221; felsefesinin arka plan g\u00f6revlerine yans\u0131mas\u0131d\u0131r.<\/p>\n<p>HarmonyOS Next&#8217;teki arka plan g\u00f6rev y\u00f6netiminin ana bile\u015fenlerinden biri, geli\u015ftiricilere arka plan g\u00f6revlerini tan\u0131mlama, zamanlama ve y\u00f6netme yetene\u011fi sunan <code>WorkScheduler<\/code> API&#8217;sidir. <code>WorkScheduler<\/code>, sistemin cihaz durumu (\u00f6rne\u011fin, \u015farjda olup olmad\u0131\u011f\u0131, a\u011f ba\u011flant\u0131s\u0131 t\u00fcr\u00fc, cihaz\u0131n bo\u015fta olup olmad\u0131\u011f\u0131) hakk\u0131nda bilgi sahibi olarak g\u00f6revleri en uygun zamanda y\u00fcr\u00fctmesini sa\u011flar. Bu, pil t\u00fcketimini azalt\u0131r ve kullan\u0131c\u0131 deneyimini iyile\u015ftirir. Ayr\u0131ca, HarmonyOS Next, <code>Ability<\/code> ya\u015fam d\u00f6ng\u00fcs\u00fc ile arka plan g\u00f6revlerini s\u0131k\u0131 bir \u015fekilde entegre eder. Bir Ability&#8217;nin durum de\u011fi\u015fiklikleri (\u00f6rne\u011fin, aktiften arka plana ge\u00e7mesi), arka plan g\u00f6revlerinin ba\u015flat\u0131lmas\u0131 veya durdurulmas\u0131 i\u00e7in tetikleyici olabilir.<\/p>\n<p>Geli\u015ftiriciler, <code>WorkScheduler<\/code> sayesinde g\u00f6revlerini belirli k\u0131s\u0131tlamalar (constraints) ile tan\u0131mlayabilirler. Bu k\u0131s\u0131tlamalar, g\u00f6revin ne zaman ve hangi ko\u015fullar alt\u0131nda \u00e7al\u0131\u015fmas\u0131 gerekti\u011fini belirtir. \u00d6rne\u011fin, sadece Wi-Fi ba\u011flant\u0131s\u0131 varken ve cihaz \u015farj olurken \u00e7al\u0131\u015facak bir g\u00f6rev tan\u0131mlanabilir. Bu esneklik, geli\u015ftiricilere hem kullan\u0131c\u0131 beklentilerini kar\u015f\u0131layan hem de cihaz kaynaklar\u0131n\u0131 koruyan uygulamalar olu\u015fturma g\u00fcc\u00fc verir. HarmonyOS Next&#8217;in bu ak\u0131ll\u0131 zamanlama ve y\u00f6netim yetenekleri, uygulaman\u0131z\u0131n farkl\u0131 cihazlarda tutarl\u0131 ve verimli bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 garanti ederken, genel sistem sa\u011fl\u0131\u011f\u0131n\u0131 da \u00f6n planda tutar. \u0130\u015fte bu y\u00fczden, HarmonyOS Next&#8217;te arka plan g\u00f6revlerini anlamak, uygulama geli\u015ftirme s\u00fcrecinin kritik bir par\u00e7as\u0131d\u0131r.<\/p>\n<h2>HarmonyOS Next&#8217;te Arka Plan G\u00f6revleri Nas\u0131l Tan\u0131mlan\u0131r ve Y\u00f6netilir?<\/h2>\n<p>HarmonyOS Next, uygulamalar\u0131n arka planda \u00e7al\u0131\u015fmas\u0131 gereken durumlar i\u00e7in \u00f6zel olarak tasarlanm\u0131\u015f API&#8217;ler sunar. Bu API&#8217;ler, g\u00f6revlerin batarya dostu ve sistem kaynaklar\u0131n\u0131 optimize edecek \u015fekilde zamanlanmas\u0131n\u0131 ve y\u00fcr\u00fct\u00fclmesini sa\u011flar. Bu b\u00f6l\u00fcm, temel olarak <code>WorkScheduler<\/code> API&#8217;si \u00fczerine odaklanacak ve ad\u0131m ad\u0131m arka plan g\u00f6revlerinin nas\u0131l tan\u0131mland\u0131\u011f\u0131n\u0131 ve y\u00f6netildi\u011fini g\u00f6sterecektir.<\/p>\n<h3>WorkScheduler ile Zamanlanm\u0131\u015f G\u00f6revler Olu\u015fturma<\/h3>\n<p><code>WorkScheduler<\/code>, uygulaman\u0131z\u0131n belirli ko\u015fullar alt\u0131nda veya d\u00fczenli aral\u0131klarla arka planda y\u00fcr\u00fctmesi gereken i\u015fleri planlamak i\u00e7in kullan\u0131lan merkezi bir HarmonyOS Next hizmetidir. Veri senkronizasyonu, log y\u00fckleme, periyodik bildirim g\u00f6nderme veya veritaban\u0131 temizleme gibi senaryolar i\u00e7in idealdir. <code>WorkScheduler<\/code>&#8216;\u0131n temel felsefesi, g\u00f6revin sadece sistem i\u00e7in en uygun zamanda (\u00f6rne\u011fin, cihaz bo\u015fta oldu\u011funda veya \u015farj olurken) \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131d\u0131r. Bu, hem uygulama performans\u0131n\u0131 hem de pil \u00f6mr\u00fcn\u00fc \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirir.<\/p>\n<p>Bir <code>WorkScheduler<\/code> g\u00f6revi tan\u0131mlamak i\u00e7in, \u00f6ncelikle bir <code>WorkInfo<\/code> objesi olu\u015fturman\u0131z gerekir. Bu obje, g\u00f6revin benzersiz kimli\u011fini, tekrarlama aral\u0131\u011f\u0131n\u0131 (e\u011fer periyodik ise) ve g\u00f6revin \u00e7al\u0131\u015fmas\u0131 i\u00e7in gerekli ko\u015fullar\u0131 (constraints) i\u00e7erir. \u0130\u015flemin ad\u0131mlar\u0131 \u015fu \u015fekildedir:<\/p>\n<ol>\n<li><strong>WorkInfo Objeleri Olu\u015fturma:<\/strong> Her arka plan g\u00f6revi i\u00e7in benzersiz bir ID&#8217;ye sahip bir <code>WorkInfo<\/code> objesi tan\u0131mlan\u0131r. Bu obje, g\u00f6revin t\u00fcr\u00fcn\u00fc (tek seferlik veya periyodik) ve \u00e7al\u0131\u015fmas\u0131 i\u00e7in gereken ko\u015fullar\u0131 belirtir.<\/li>\n<li><strong>Ko\u015fullar\u0131n Belirlenmesi (Constraints):<\/strong> <code>WorkInfo<\/code> objesi \u00fczerinden, g\u00f6revin ne zaman \u00e7al\u0131\u015fabilece\u011fini belirten \u00e7e\u015fitli k\u0131s\u0131tlamalar ayarlayabilirsiniz. En yayg\u0131n k\u0131s\u0131tlamalar \u015funlard\u0131r:\n<ul>\n<li><code>setNetworkType()<\/code>: G\u00f6revin \u00e7al\u0131\u015fmas\u0131 i\u00e7in belirli bir a\u011f ba\u011flant\u0131s\u0131 t\u00fcr\u00fc gereksinimini belirtir (\u00f6rne\u011fin, Wi-Fi veya herhangi bir a\u011f).<\/li>\n<li><code>setIsCharging()<\/code>: G\u00f6revin sadece cihaz \u015farj olurken \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmayaca\u011f\u0131n\u0131 ayarlar.<\/li>\n<li><code>setIsIdle()<\/code>: Cihaz\u0131n bo\u015fta (idle) modda olup olmad\u0131\u011f\u0131n\u0131 kontrol eder. Bu, genellikle daha az acil g\u00f6revler i\u00e7in pil \u00f6mr\u00fcn\u00fc korumak ad\u0131na kullan\u0131l\u0131r.<\/li>\n<li><code>setTriggerCondition()<\/code>: Daha karma\u015f\u0131k tetikleyiciler i\u00e7in kullan\u0131l\u0131r, \u00f6rne\u011fin belirli bir dosya de\u011fi\u015fikli\u011fi veya batarya seviyesi gibi.<\/li>\n<li><code>setRepeatCycleTime()<\/code> ve <code>setRepeatCount()<\/code>: G\u00f6revin periyodik olarak ne s\u0131kl\u0131kla tekrarlanaca\u011f\u0131n\u0131 ve ka\u00e7 kez tekrarlanaca\u011f\u0131n\u0131 belirler.<\/li>\n<\/ul>\n<\/li>\n<li><strong>WorkScheduler Instance&#8217;\u0131 Alma:<\/strong> Uygulaman\u0131z\u0131n ba\u011flam\u0131ndan bir <code>WorkScheduler<\/code> hizmeti al\u0131n\u0131r.<\/li>\n<li><strong>G\u00f6revin Zamanlanmas\u0131 (<code>startWork<\/code>):<\/strong> Olu\u015fturulan <code>WorkInfo<\/code> objesi kullan\u0131larak <code>startWork()<\/code> metodu \u00e7a\u011fr\u0131l\u0131r. Bu, g\u00f6revin sistem taraf\u0131ndan zamanlanmas\u0131n\u0131 sa\u011flar.<\/li>\n<li><strong>G\u00f6revin \u0130ptal Edilmesi (<code>stopWork<\/code>):<\/strong> \u0130htiya\u00e7 duyuldu\u011funda, daha \u00f6nce zamanlanm\u0131\u015f bir g\u00f6revi <code>stopWork()<\/code> metodu ile iptal edebilirsiniz.<\/li>\n<\/ol>\n<p>A\u015fa\u011f\u0131daki kod \u00f6rne\u011fi, HarmonyOS Next&#8217;te nas\u0131l periyodik bir arka plan g\u00f6revi tan\u0131mlayaca\u011f\u0131n\u0131z\u0131 ve zamanlayaca\u011f\u0131n\u0131z\u0131 g\u00f6stermektedir. Bu g\u00f6rev, sadece cihaz Wi-Fi&#8217;ye ba\u011fl\u0131yken ve \u015farj olurken her 6 saatte bir \u00e7al\u0131\u015facak \u015fekilde ayarlanm\u0131\u015ft\u0131r.<\/p>\n<pre><code>\n        import ohos.work.WorkInfo;\n        import ohos.work.WorkScheduler;\n        import ohos.rpc.RemoteException;\n        import ohos.bundle.ElementName;\n        import ohos.app.Context;\n\n        public class MyBackgroundWorker {\n            private static final int WORK_ID = 1001; \/\/ G\u00f6rev i\u00e7in benzersiz ID\n            private static final long REPEAT_CYCLE_TIME = 6 * 60 * 60 * 1000L; \/\/ 6 saat (milisaniye cinsinden)\n\n            public void schedulePeriodicWork(Context context) {\n                WorkInfo workInfo = new WorkInfo(WORK_ID, WorkInfo.WorkType.REPEATING_WORK);\n                workInfo.setRepeatCycleTime(REPEAT_CYCLE_TIME); \/\/ Her 6 saatte bir tekrarla\n                workInfo.setNetworkType(WorkInfo.NetworkType.NETWORK_TYPE_WIFI); \/\/ Sadece Wi-Fi ile \u00e7al\u0131\u015f\n                workInfo.setIsCharging(true); \/\/ Sadece cihaz \u015farj olurken \u00e7al\u0131\u015f\n\n                \/\/ WorkSchedulerService'i tan\u0131mlay\u0131n (kendi WorkSchedulerService s\u0131n\u0131f\u0131n\u0131z olmal\u0131)\n                \/\/ ElementName, WorkSchedulerService'inizin paket ad\u0131n\u0131 ve s\u0131n\u0131f ad\u0131n\u0131 i\u015faret eder.\n                ElementName serviceElement = new ElementName(\n                    context.getBundleName(), \/\/ Uygulaman\u0131z\u0131n paket ad\u0131\n                    \"com.example.myapplication.MyWorkSchedulerService\" \/\/ Kendi WorkSchedulerService s\u0131n\u0131f\u0131n\u0131z\u0131n tam yolu\n                );\n                workInfo.setServiceElement(serviceElement);\n\n                WorkScheduler workScheduler = WorkScheduler.getWorkScheduler(context);\n                try {\n                    boolean result = workScheduler.startWork(workInfo);\n                    if (result) {\n                        \/\/ Uygulama: Bu bir uzman ipucudur.\n                        \/\/ Arka plan g\u00f6revlerini ba\u015far\u0131yla zamanlad\u0131\u011f\u0131n\u0131zda bir log kayd\u0131 olu\u015fturmak,\n                        \/\/ hata ay\u0131klama ve izleme a\u00e7\u0131s\u0131ndan olduk\u00e7a faydal\u0131d\u0131r.\n                        \/\/ Bu sayede g\u00f6revin sistem taraf\u0131ndan kaydedildi\u011finden emin olabilirsiniz.\n                        \/\/ Ayr\u0131ca kullan\u0131c\u0131ya bildirimle bilgi verebilirsiniz.\n                        console.log(\"Periyodik arka plan g\u00f6revi ba\u015far\u0131yla zamanland\u0131.\");\n                    } else {\n                        console.log(\"Periyodik arka plan g\u00f6revi zamanlan\u0131rken bir sorun olu\u015ftu.\");\n                    }\n                } catch (RemoteException e) {\n                    console.error(\"WorkScheduler RPC hatas\u0131: \" + e.getMessage());\n                }\n            }\n\n            public void cancelWork(Context context) {\n                WorkScheduler workScheduler = WorkScheduler.getWorkScheduler(context);\n                try {\n                    boolean result = workScheduler.stopWork(WORK_ID);\n                    if (result) {\n                        console.log(\"Arka plan g\u00f6revi ba\u015far\u0131yla iptal edildi.\");\n                    } else {\n                        console.log(\"Arka plan g\u00f6revi iptal edilirken bir sorun olu\u015ftu.\");\n                    }\n                } catch (RemoteException e) {\n                    console.error(\"WorkScheduler RPC hatas\u0131: \" + e.getMessage());\n                }\n            }\n        }\n    <\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki kodda <code>MyWorkSchedulerService<\/code> ad\u0131nda bir AbilitySlice t\u00fcrevi olu\u015fturman\u0131z ve <code>WorkSchedulerService<\/code>'den t\u00fcretmeniz gerekti\u011fini unutmay\u0131n. Bu servis, WorkScheduler taraf\u0131ndan tetiklendi\u011finde arka plan g\u00f6revinizin ger\u00e7ek i\u015f mant\u0131\u011f\u0131n\u0131 y\u00fcr\u00fctece\u011fi yerdir. HarmonyOS Next'in ServiceAbility'leri, arka plan g\u00f6revlerini ger\u00e7ekle\u015ftirmek i\u00e7in ideal bir yap\u0131d\u0131r.<\/p>\n<pre><code>\n        \/\/ MyWorkSchedulerService.java\n        import ohos.work.WorkSchedulerService;\n        import ohos.work.WorkInfo;\n        import ohos.rpc.IRemoteObject;\n        import ohos.aafwk.ability.AbilitySlice; \/\/ Bu, Ability'nizin bir par\u00e7as\u0131 olmal\u0131, servis de\u011fil.\n        import ohos.aafwk.ability.Ability;\n\n        public class MyWorkSchedulerService extends WorkSchedulerService {\n            @Override\n            public void onStartWork(WorkInfo workInfo) {\n                \/\/ Burada arka plan g\u00f6revinizin ana i\u015f mant\u0131\u011f\u0131n\u0131 y\u00fcr\u00fct\u00fcn.\n                \/\/ \u00d6rne\u011fin, a\u011f iste\u011fi g\u00f6nderme, veritaban\u0131 i\u015flemleri, dosya yazma vb.\n                console.log(\"onStartWork tetiklendi, Work ID: \" + workInfo.getWorkId());\n\n                \/\/ \u00d6rnek bir i\u015f: Basit\u00e7e log yazd\u0131r\n                Thread backgroundThread = new Thread(() -> {\n                    try {\n                        Thread.sleep(5000); \/\/ 5 saniye s\u00fcren bir i\u015fi sim\u00fcle et\n                        console.log(\"Arka plan g\u00f6revi (ID: \" + workInfo.getWorkId() + \") tamamland\u0131!\");\n                    } catch (InterruptedException e) {\n                        Thread.currentThread().interrupt();\n                        console.error(\"Arka plan g\u00f6revi kesintiye u\u011frad\u0131.\");\n                    } finally {\n                        \/\/ \u0130\u015flem tamamland\u0131\u011f\u0131nda veya hata olu\u015ftu\u011funda mutlaka workDone() \u00e7a\u011fr\u0131lmal\u0131.\n                        \/\/ Aksi takdirde, sistem bu g\u00f6revi tamamlanmam\u0131\u015f olarak alg\u0131lar.\n                        workDone(workInfo, false); \/\/ true = ba\u015far\u0131l\u0131, false = ba\u015far\u0131s\u0131z\n                    }\n                });\n                backgroundThread.start();\n            }\n\n            @Override\n            public void onStopWork(WorkInfo workInfo) {\n                \/\/ G\u00f6rev sistem taraf\u0131ndan durduruldu\u011funda (\u00f6rne\u011fin, ko\u015fullar art\u0131k sa\u011flanmad\u0131\u011f\u0131nda) \u00e7a\u011fr\u0131l\u0131r.\n                console.log(\"onStopWork tetiklendi, Work ID: \" + workInfo.getWorkId());\n                \/\/ Burada devam eden i\u015fleri durdurmak i\u00e7in gerekli temizlik i\u015flemleri yap\u0131labilir.\n            }\n        }\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu kod blo\u011fu, <code>WorkSchedulerService<\/code>'in nas\u0131l geni\u015fletilece\u011fini ve <code>onStartWork<\/code> ile <code>onStopWork<\/code> metotlar\u0131n\u0131n nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 g\u00f6stermektedir. <code>onStartWork<\/code> metodu i\u00e7inde, asenkron bir i\u015flem (\u00f6rne\u011fin, yeni bir thread \u00fczerinde) ba\u015flatmak ve i\u015f bitti\u011finde <code>workDone()<\/code> metodunu \u00e7a\u011f\u0131rmak \u00f6nemlidir. Bu, HarmonyOS Next'e g\u00f6revin tamamland\u0131\u011f\u0131n\u0131 veya ba\u015far\u0131s\u0131z oldu\u011funu bildirir ve sistem kaynaklar\u0131n\u0131 do\u011fru bir \u015fekilde y\u00f6netmesine olanak tan\u0131r.<\/p>\n<h2>Uzun S\u00fcreli \u0130\u015flemler ve Kaynak Y\u00f6netimi: HarmonyOS Next Yakla\u015f\u0131m\u0131<\/h2>\n<h3>Esnek ve Ak\u0131ll\u0131 G\u00f6rev Planlama \u0130\u00e7in WorkScheduler Kullan\u0131m\u0131<\/h3>\n<p>HarmonyOS Next'in <code>WorkScheduler<\/code> mekanizmas\u0131, basit zamanlaman\u0131n \u00f6tesinde, sistemin mevcut durumuna (pil seviyesi, a\u011f ba\u011flant\u0131s\u0131, cihaz bo\u015fta kalma durumu) duyarl\u0131, esnek ve ak\u0131ll\u0131 bir g\u00f6rev planlama imkan\u0131 sunar. Bu, uygulaman\u0131z\u0131n enerji verimlili\u011fini art\u0131rman\u0131n ve kullan\u0131c\u0131 deneyimini bozmadan arka plan i\u015flerini y\u00fcr\u00fctmenin temelidir. Uzun s\u00fcreli veya kaynak yo\u011fun g\u00f6revleri planlarken, do\u011fru <code>WorkInfo<\/code> k\u0131s\u0131tlamalar\u0131n\u0131 se\u00e7mek hayati \u00f6nem ta\u015f\u0131r.<\/p>\n<p>\u00d6rne\u011fin, b\u00fcy\u00fck dosyalar\u0131n indirilmesi veya kapsaml\u0131 veri senkronizasyonlar\u0131 gibi i\u015flemler, y\u00fcksek a\u011f bant geni\u015fli\u011fi ve \u00f6nemli miktarda enerji gerektirebilir. Bu t\u00fcr g\u00f6revler i\u00e7in <code>setNetworkType(WorkInfo.NetworkType.NETWORK_TYPE_WIFI)<\/code> ve <code>setIsCharging(true)<\/code> gibi k\u0131s\u0131tlamalar\u0131 kullanmak, kullan\u0131c\u0131n\u0131n mobil veri plan\u0131n\u0131 t\u00fcketmesini veya cihaz\u0131n pilinin h\u0131zla bitmesini engeller. Ayr\u0131ca, <code>setIsIdle(true)<\/code> k\u0131s\u0131tlamas\u0131, g\u00f6revin sadece cihaz kullan\u0131lmad\u0131\u011f\u0131nda \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayarak, kullan\u0131c\u0131n\u0131n cihaz\u0131yla etkile\u015fimde oldu\u011fu s\u0131rada olu\u015fabilecek performans d\u00fc\u015f\u00fc\u015flerini \u00f6nler.<\/p>\n<p>HarmonyOS Next, tek seferlik g\u00f6revlerin yan\u0131 s\u0131ra periyodik g\u00f6revler i\u00e7in de geli\u015fmi\u015f se\u00e7enekler sunar. <code>setRepeatCycleTime()<\/code> ile g\u00f6revin belirli bir s\u00fcre sonra tekrar \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayabilirken, <code>setRepeatCount()<\/code> ile bu tekrar\u0131n ka\u00e7 kez ger\u00e7ekle\u015fece\u011fini s\u0131n\u0131rlayabilirsiniz. Bu, d\u00fczenli aral\u0131klarla yap\u0131lmas\u0131 gereken ancak sonsuz d\u00f6ng\u00fcye girmesi istenmeyen bakim g\u00f6revleri i\u00e7in kullan\u0131\u015fl\u0131d\u0131r. E\u011fer g\u00f6reviniz bir s\u00fcre ba\u015far\u0131s\u0131z olursa, <code>setFailedRetries()<\/code> ile otomatik tekrar deneme say\u0131s\u0131n\u0131 da belirleyebilirsiniz. Bu, ge\u00e7ici a\u011f kesintileri gibi durumlar i\u00e7in sa\u011flam bir hata tolerans\u0131 sa\u011flar.<\/p>\n<p>Baz\u0131 durumlarda, bir arka plan g\u00f6revi o kadar kritik olabilir ki, sistem taraf\u0131ndan durdurulmamas\u0131 veya geciktirilmemesi gerekir. Bu t\u00fcr senaryolar i\u00e7in HarmonyOS Next, \u00f6n plan hizmetleri (Foreground Services) kavram\u0131n\u0131 sunar. \u00d6n plan hizmetleri, kullan\u0131c\u0131ya g\u00f6r\u00fcn\u00fcr bir bildirimle s\u00fcrekli olarak \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6steren ve sistem taraf\u0131ndan daha d\u00fc\u015f\u00fck \u00f6ncelikli arka plan g\u00f6revlerine g\u00f6re daha az k\u0131s\u0131tlanan servislerdir. Konum takibi, m\u00fczik \u00e7alma veya arama kayd\u0131 gibi kullan\u0131c\u0131 i\u00e7in do\u011frudan fayda sa\u011flayan uzun s\u00fcreli i\u015flemler, \u00f6n plan hizmetleri arac\u0131l\u0131\u011f\u0131yla y\u00fcr\u00fct\u00fclmelidir. Ancak, \u00f6n plan hizmetleri batarya t\u00fcketimini art\u0131raca\u011f\u0131ndan, sadece ger\u00e7ekten gerekli oldu\u011funda ve kullan\u0131c\u0131y\u0131 bilgilendirerek kullan\u0131lmal\u0131d\u0131r.<\/p>\n<p>Sonu\u00e7 olarak, HarmonyOS Next'teki <code>WorkScheduler<\/code> ve <code>WorkInfo<\/code> objeleri, geli\u015ftiricilere arka plan g\u00f6revlerini sadece zamanlamakla kalmay\u0131p, ayn\u0131 zamanda cihaz\u0131n ve kullan\u0131c\u0131n\u0131n ihtiya\u00e7lar\u0131na g\u00f6re ak\u0131ll\u0131ca adapte edebilme yetene\u011fi sunar. Bu esneklik, modern uygulamalar\u0131n hem performansl\u0131 hem de enerji verimli olmas\u0131n\u0131 sa\u011flamak i\u00e7in kritik bir bile\u015fendir.<\/p>\n<h2>Ger\u00e7ek D\u00fcnya Senaryolar\u0131: Vaka Analizleri ile HarmonyOS Next Arka Plan G\u00f6revlerini Anlamak<\/h2>\n<p>Teorik bilgileri peki\u015ftirmenin en iyi yolu, ger\u00e7ek d\u00fcnya senaryolar\u0131 \u00fczerinde uygulamakt\u0131r. Bu b\u00f6l\u00fcmde, HarmonyOS Next'in arka plan g\u00f6rev y\u00f6netimi yeteneklerinin farkl\u0131 uygulama t\u00fcrlerinde nas\u0131l kullan\u0131labilece\u011fini iki vaka analizi \u00fczerinden inceleyece\u011fiz.<\/p>\n<h3>Bir Haber Uygulamas\u0131nda Veri Senkronizasyonu Nas\u0131l Yap\u0131l\u0131r?<\/h3>\n<p>Hayal edin ki bir haber uygulaman\u0131z var. Kullan\u0131c\u0131lar uygulaman\u0131z\u0131 kapatt\u0131ktan sonra bile en son haber ba\u015fl\u0131klar\u0131n\u0131 ve makaleleri almak istiyorlar. Uygulaman\u0131z\u0131n, her birka\u00e7 saatte bir internetten yeni haberleri \u00e7ekmesi, yerel veritaban\u0131n\u0131 g\u00fcncellemesi ve \u00f6nemli haberler i\u00e7in kullan\u0131c\u0131ya bildirim g\u00f6ndermesi gerekiyor. Bu, <code>WorkScheduler<\/code> i\u00e7in klasik bir kullan\u0131m senaryosudur.<\/p>\n<p><strong>Uygulama Ad\u0131mlar\u0131:<\/strong><\/p>\n<ol>\n<li><strong><code>WorkInfo<\/code> Tan\u0131mlamas\u0131:<\/strong> \u0130lk olarak, periyodik bir g\u00f6rev i\u00e7in bir <code>WorkInfo<\/code> objesi olu\u015fturulur. \u00d6rne\u011fin, her 6 saatte bir \u00e7al\u0131\u015facak \u015fekilde ayarlan\u0131r. Bu g\u00f6revin sadece cihaz Wi-Fi'ye ba\u011fl\u0131yken ve tercihen \u015farj olurken \u00e7al\u0131\u015fmas\u0131 sa\u011flanarak hem mobil veri t\u00fcketiminden ka\u00e7\u0131n\u0131l\u0131r hem de pil \u00f6mr\u00fc korunur.<\/li>\n<pre><code>\n            WorkInfo newsSyncWork = new WorkInfo(NEWS_SYNC_WORK_ID, WorkInfo.WorkType.REPEATING_WORK);\n            newsSyncWork.setRepeatCycleTime(6 * 60 * 60 * 1000L); \/\/ 6 saat\n            newsSyncWork.setNetworkType(WorkInfo.NetworkType.NETWORK_TYPE_WIFI);\n            newsSyncWork.setIsCharging(true); \/\/ \u0130ste\u011fe ba\u011fl\u0131\n            newsSyncWork.setServiceElement(new ElementName(\n                getContext().getBundleName(),\n                \"com.example.newsapp.NewsSyncService\" \/\/ Kendi WorkSchedulerService s\u0131n\u0131f\u0131n\u0131z\n            ));\n        <\/pre>\n<p><\/code><\/p>\n<li><strong><code>WorkSchedulerService<\/code> Uygulamas\u0131:<\/strong> <code>NewsSyncService<\/code> ad\u0131nda bir <code>WorkSchedulerService<\/code> s\u0131n\u0131f\u0131 olu\u015fturulur. <code>onStartWork<\/code> metodu i\u00e7inde, uygulaman\u0131n arka u\u00e7 sunucusundan yeni haberleri getiren bir a\u011f iste\u011fi ba\u015flat\u0131l\u0131r. \u0130ndirilen veriler yerel veritaban\u0131na kaydedilir.<\/li>\n<pre><code>\n            public class NewsSyncService extends WorkSchedulerService {\n                @Override\n                public void onStartWork(WorkInfo workInfo) {\n                    console.log(\"Haber senkronizasyon g\u00f6revi ba\u015flat\u0131ld\u0131.\");\n                    \/\/ Yeni haberleri \u00e7ekmek i\u00e7in asenkron bir i\u015flem ba\u015flat\n                    new Thread(() -> {\n                        try {\n                            \/\/ Ger\u00e7ek haber \u00e7ekme ve veritaban\u0131na kaydetme mant\u0131\u011f\u0131\n                            fetchLatestNewsAndSaveToDb();\n                            \/\/ \u00d6nemli haberler i\u00e7in bildirim g\u00f6nderme\n                            sendNewsNotification();\n                            workDone(workInfo, true); \/\/ Ba\u015far\u0131l\u0131\n                            console.log(\"Haber senkronizasyon g\u00f6revi tamamland\u0131.\");\n                        } catch (Exception e) {\n                            console.error(\"Haber senkronizasyonunda hata: \" + e.getMessage());\n                            workDone(workInfo, false); \/\/ Ba\u015far\u0131s\u0131z\n                        }\n                    }).start();\n                }\n                \/\/ ... onStopWork metodu ve di\u011fer yard\u0131mc\u0131 metotlar\n            }\n        <\/pre>\n<p><\/code><\/p>\n<li><strong>Bildirim Y\u00f6netimi:<\/strong> Yeni ve \u00f6nemli haberler bulundu\u011funda, HarmonyOS Next'in bildirim API'leri kullan\u0131larak kullan\u0131c\u0131ya g\u00f6rsel bir bildirim g\u00f6nderilir. Bu, kullan\u0131c\u0131n\u0131n uygulamay\u0131 a\u00e7mas\u0131na gerek kalmadan g\u00fcncel kalmas\u0131n\u0131 sa\u011flar.<\/li>\n<\/ol>\n<p>Bu senaryo, <code>WorkScheduler<\/code>'\u0131n nas\u0131l ak\u0131ll\u0131ca kullan\u0131larak hem uygulaman\u0131n i\u015flevselli\u011fini s\u00fcrd\u00fcrd\u00fc\u011f\u00fcn\u00fc hem de pil \u00f6mr\u00fc gibi kritik kaynaklar\u0131 korudu\u011funu g\u00f6stermektedir. Kullan\u0131c\u0131, uygulamas\u0131n\u0131 a\u00e7t\u0131\u011f\u0131nda her zaman g\u00fcncel haberlerle kar\u015f\u0131la\u015f\u0131r, bu da memnuniyeti art\u0131r\u0131r.<\/p>\n<h3>Bir Fitness Uygulamas\u0131nda Konum Takibi ve Veri Saklama<\/h3>\n<p>Bir fitness uygulamas\u0131n\u0131n, kullan\u0131c\u0131 ko\u015farken veya y\u00fcr\u00fcrken konum verilerini s\u00fcrekli olarak kaydetmesi gerekti\u011fini d\u00fc\u015f\u00fcnelim. Kullan\u0131c\u0131 uygulamay\u0131 arka plana att\u0131\u011f\u0131nda bile bu takibin devam etmesi gerekir. Bu senaryo, basit bir <code>WorkScheduler<\/code> g\u00f6revinin \u00f6tesine ge\u00e7erek \u00f6n plan hizmetleri (Foreground Service) kullan\u0131m\u0131n\u0131 gerektirir.<\/p>\n<p><strong>Uygulama Ad\u0131mlar\u0131:<\/strong><\/p>\n<ol>\n<li><strong>\u00d6n Plan Hizmeti Tan\u0131mlamas\u0131:<\/strong> Konum takibi, s\u00fcrekli ve kritik bir i\u015flem oldu\u011fundan, bir <code>ServiceExtensionAbility<\/code> (veya Service Ability) s\u0131n\u0131f\u0131 \u00f6n plan hizmeti olarak ba\u015flat\u0131l\u0131r. Bu hizmet, kullan\u0131c\u0131ya \"Aktivite takibi devam ediyor\" gibi bir bildirim g\u00f6sterir, b\u00f6ylece kullan\u0131c\u0131 uygulaman\u0131n arka planda konumunu kulland\u0131\u011f\u0131n\u0131n fark\u0131nda olur ve i\u015fletim sistemi hizmeti sonland\u0131rmaktan ka\u00e7\u0131n\u0131r.<\/li>\n<pre><code>\n            \/\/ FitnessTrackingService.java\n            import ohos.aafwk.ability.ServiceExtensionAbility;\n            import ohos.rpc.IRemoteObject;\n            import ohos.event.notification.NotificationRequest;\n            import ohos.event.notification.NotificationHelper;\n            import ohos.bundle.ElementName;\n\n            public class FitnessTrackingService extends ServiceExtensionAbility {\n                private static final int NOTIFICATION_ID = 101;\n                private static final String NOTIFICATION_CHANNEL_ID = \"fitness_tracker_channel\";\n\n                @Override\n                public void onStart(AbilitySlice slice) {\n                    super.onStart(slice);\n                    \/\/ Bildirim olu\u015fturma ve servisi \u00f6n plan hizmeti olarak ba\u015flatma\n                    NotificationRequest request = new NotificationRequest(NOTIFICATION_CHANNEL_ID, NOTIFICATION_ID);\n                    request.setContentTitle(\"Fitness Takibi\");\n                    request.setContentText(\"Aktiviteniz arka planda takip ediliyor.\");\n                    try {\n                        \/\/ \u00d6n plan hizmeti olarak ba\u015flat\n                        keepBackgroundRunning(NOTIFICATION_ID, request);\n                    } catch (RemoteException e) {\n                        console.error(\"\u00d6n plan hizmeti ba\u015flat\u0131l\u0131rken hata: \" + e.getMessage());\n                    }\n\n                    \/\/ Konum takibi ba\u015flatma mant\u0131\u011f\u0131\n                    startLocationUpdates();\n                    console.log(\"Fitness takibi \u00f6n plan hizmeti ba\u015flat\u0131ld\u0131.\");\n                }\n\n                @Override\n                public void onStop() {\n                    super.onStop();\n                    \/\/ Konum takibi durdurma mant\u0131\u011f\u0131\n                    stopLocationUpdates();\n                    try {\n                        \/\/ \u00d6n plan hizmetini durdur\n                        cancelBackgroundRunning();\n                    } catch (RemoteException e) {\n                        console.error(\"\u00d6n plan hizmeti durdurulurken hata: \" + e.getMessage());\n                    }\n                    console.log(\"Fitness takibi \u00f6n plan hizmeti durduruldu.\");\n                }\n\n                private void startLocationUpdates() {\n                    \/\/ Konum servisini kullanarak konum g\u00fcncellemelerini almaya ba\u015fla\n                    \/\/ Her yeni konum verisini yerel veritaban\u0131na kaydet\n                    console.log(\"Konum g\u00fcncellemeleri ba\u015flat\u0131ld\u0131.\");\n                }\n\n                private void stopLocationUpdates() {\n                    \/\/ Konum servisi g\u00fcncellemelerini durdur\n                    console.log(\"Konum g\u00fcncellemeleri durduruldu.\");\n                }\n\n                @Override\n                public IRemoteObject onConnect(Intent intent) {\n                    return null; \/\/ Ba\u011flama gerektirmiyorsa null\n                }\n            }\n        <\/pre>\n<p><\/code><\/p>\n<li><strong>Konum Verisi \u0130\u015fleme:<\/strong> Hizmet i\u00e7inde, HarmonyOS Next'in konum API'leri kullan\u0131larak d\u00fczenli aral\u0131klarla konum g\u00fcncellemeleri al\u0131n\u0131r. Bu veriler, kullan\u0131c\u0131n\u0131n rotas\u0131n\u0131 \u00e7izmek ve mesafe, h\u0131z gibi metrikleri hesaplamak i\u00e7in i\u015flenir. Veriler yerel olarak depolan\u0131r ve daha sonra sunucuya senkronize edilebilir.<\/li>\n<li><strong>Batarya Optimizasyonu:<\/strong> S\u00fcrekli konum takibi y\u00fcksek batarya t\u00fcketimine neden olabilece\u011finden, uygulamada batarya optimizasyonlar\u0131 uygulanmal\u0131d\u0131r. \u00d6rne\u011fin, GPS yerine a\u011f tabanl\u0131 konum (daha az hassas ama daha az enerji t\u00fcketen) kullan\u0131labilir, konum g\u00fcncelleme aral\u0131\u011f\u0131 optimize edilebilir veya kullan\u0131c\u0131n\u0131n hareketi durdu\u011funda takip duraklat\u0131labilir.<\/li>\n<\/ol>\n<p>Bu vaka analizleri, HarmonyOS Next'in <code>WorkScheduler<\/code> ve \u00f6n plan hizmetleri gibi farkl\u0131 arka plan g\u00f6rev mekanizmalar\u0131n\u0131 kullanarak \u00e7e\u015fitli uygulama gereksinimlerini nas\u0131l kar\u015f\u0131layabilece\u011fimizi g\u00f6zler \u00f6n\u00fcne sermektedir. Do\u011fru mekanizman\u0131n do\u011fru senaryoda kullan\u0131lmas\u0131, hem uygulama verimlili\u011fini hem de kullan\u0131c\u0131 memnuniyetini art\u0131racakt\u0131r.<\/p>\n<div class=\"tip\">\n      Uzman \u0130pucu: Arka plan g\u00f6revlerini test ederken, cihaz\u0131n pil seviyesini, a\u011f durumunu ve bo\u015fta kalma s\u00fcresini manuel olarak de\u011fi\u015ftirerek farkl\u0131 ko\u015fullar\u0131 sim\u00fcle edin. Bu, uygulaman\u0131z\u0131n ger\u00e7ek d\u00fcnya ko\u015fullar\u0131nda nas\u0131l tepki verdi\u011fini anlaman\u0131za yard\u0131mc\u0131 olur ve beklenmedik sorunlar\u0131 \u00f6nceden tespit etmenizi sa\u011flar.\n    <\/div>\n<h2>\u0130leri D\u00fczey Teknikler: Arka Plan G\u00f6revlerinde Optimizasyon ve Geli\u015fmi\u015f Y\u00f6netim<\/h2>\n<p>HarmonyOS Next'te arka plan g\u00f6revlerini sadece \u00e7al\u0131\u015f\u0131r hale getirmek yeterli de\u011fildir; onlar\u0131 optimize etmek ve geli\u015fmi\u015f y\u00f6ntemlerle y\u00f6netmek, uygulaman\u0131z\u0131n pazardaki ba\u015far\u0131s\u0131 i\u00e7in kritik \u00f6neme sahiptir. Batarya t\u00fcketimini minimize etmek, hata y\u00f6netimini g\u00fc\u00e7lendirmek ve da\u011f\u0131t\u0131k ortamlarda g\u00f6revlerin uyumunu sa\u011flamak, bu b\u00f6l\u00fcmde ele alaca\u011f\u0131m\u0131z konular aras\u0131ndad\u0131r.<\/p>\n<h3>Batarya T\u00fcketimini Minimize Etme Stratejileri<\/h3>\n<p>Batarya \u00f6mr\u00fc, mobil cihaz kullan\u0131c\u0131lar\u0131 i\u00e7in en hassas konulardan biridir. Arka plan g\u00f6revleri, k\u00f6t\u00fc y\u00f6netildi\u011finde cihaz\u0131n pilini h\u0131zla t\u00fcketebilir. HarmonyOS Next'te bu sorunu ele almak i\u00e7in birka\u00e7 strateji bulunmaktad\u0131r:<\/p>\n<ul>\n<li><strong>Do\u011fru Constraint Se\u00e7imi:<\/strong> <code>WorkInfo<\/code> nesnesini olu\u015ftururken, g\u00f6revinizin gerektirdi\u011fi en az k\u0131s\u0131tlamalar\u0131 se\u00e7in. \u00d6rne\u011fin, b\u00fcy\u00fck bir dosya indirme i\u015flemi i\u00e7in sadece Wi-Fi ve \u015farjda olma ko\u015fulunu aramak, mobil veri ve pil tasarrufu sa\u011flar. Daha az kritik g\u00f6revler i\u00e7in <code>setIsIdle(true)<\/code> k\u0131s\u0131tlamas\u0131n\u0131 kullanmak, cihaz\u0131n aktif kullan\u0131mdayken pil t\u00fcketimini engeller.<\/li>\n<li><strong>G\u00f6revleri Birle\u015ftirme (Batching):<\/strong> Birden fazla k\u00fc\u00e7\u00fck arka plan g\u00f6reviniz varsa, bunlar\u0131 tek bir b\u00fcy\u00fck g\u00f6revde birle\u015ftirmeyi d\u00fc\u015f\u00fcn\u00fcn. Her g\u00f6rev ba\u015flat\u0131ld\u0131\u011f\u0131nda sistemde bir \"uyanma\" (wake-up) s\u00fcreci tetiklenir ve bu da enerji t\u00fcketir. G\u00f6revleri birle\u015ftirerek, bu uyanma say\u0131s\u0131n\u0131 azaltabilir ve genel enerji verimlili\u011fini art\u0131rabilirsiniz.<\/li>\n<li><strong>Gereksiz Uyan\u0131kl\u0131klardan Ka\u00e7\u0131nma (Wake Locks):<\/strong> Android'den al\u0131\u015f\u0131k oldu\u011fumuz \"wake lock\" kavram\u0131, HarmonyOS Next'te do\u011frudan ayn\u0131 \u015fekilde olmasa da, sistemin belirli bir s\u00fcre uykuya ge\u00e7mesini engelleyen benzer mekanizmalar mevcuttur. Arka plan g\u00f6revlerinizde uzun s\u00fcreli CPU veya a\u011f eri\u015fimi gerektiren i\u015flemler yaparken, i\u015finiz biter bitmez sistem kaynaklar\u0131n\u0131 serbest b\u0131rakmaya \u00f6zen g\u00f6sterin. Unutulan bir kaynak serbest b\u0131rakma, pilin gereksiz yere t\u00fckenmesine neden olabilir.<\/li>\n<li><strong>A\u015famal\u0131 Senkronizasyon:<\/strong> T\u00fcm veriyi tek seferde senkronize etmek yerine, kritik verileri \u00f6nce, daha az kritik verileri ise cihaz\u0131n bo\u015fta oldu\u011fu veya \u015farj edildi\u011fi zamanlarda senkronize edin. Bu \"a\u015famal\u0131l\u0131k\", kullan\u0131c\u0131ya daha h\u0131zl\u0131 geri bildirim sa\u011flarken, a\u011f\u0131r i\u015flemleri daha uygun zamanlara erteleyerek batarya \u00fczerinde daha az y\u00fck olu\u015fturur.<\/li>\n<\/ul>\n<h3>Hata Y\u00f6netimi ve Geri D\u00f6n\u00fc\u015f Mekanizmalar\u0131<\/h3>\n<p>Arka plan g\u00f6revleri, a\u011f ba\u011flant\u0131s\u0131 kesilmesi, sunucu hatalar\u0131 veya cihaz kaynaklar\u0131n\u0131n yetersizli\u011fi gibi bir\u00e7ok nedenden dolay\u0131 ba\u015far\u0131s\u0131z olabilir. Sa\u011flam bir hata y\u00f6netimi stratejisi, uygulaman\u0131z\u0131n g\u00fcvenilirli\u011fini art\u0131r\u0131r:<\/p>\n<ul>\n<li><strong><code>onWorkFailed<\/code> ve <code>onWorkSuccess<\/code> Kullan\u0131m\u0131:<\/strong> <code>WorkSchedulerService<\/code> i\u00e7indeki <code>onWorkStart<\/code> metodunuzda g\u00f6revi ba\u015flatt\u0131ktan sonra, i\u015fleminizin sonucuna g\u00f6re <code>workDone(workInfo, true)<\/code> (ba\u015far\u0131l\u0131) veya <code>workDone(workInfo, false)<\/code> (ba\u015far\u0131s\u0131z) \u00e7a\u011fr\u0131s\u0131n\u0131 do\u011fru bir \u015fekilde yapt\u0131\u011f\u0131n\u0131zdan emin olun. Bu, <code>WorkScheduler<\/code>'\u0131n g\u00f6revin durumunu izlemesini ve gerekirse tekrar deneme mekanizmalar\u0131n\u0131 tetiklemesini sa\u011flar.<\/li>\n<li><strong>Tekrar Deneme (Retry) Politikalar\u0131:<\/strong> <code>WorkInfo<\/code> objesinde <code>setFailedRetries()<\/code> metodu ile g\u00f6revin ba\u015far\u0131s\u0131z oldu\u011funda otomatik olarak ka\u00e7 kez tekrar denenece\u011fini belirleyebilirsiniz. Bu, ge\u00e7ici hatalar i\u00e7in harika bir \u00e7\u00f6z\u00fcmd\u00fcr. Ancak, s\u00fcrekli ba\u015far\u0131s\u0131z olan g\u00f6revler i\u00e7in \u00fcstel geri \u00e7ekilme (exponential backoff) stratejileri uygulayarak, tekrar denemeler aras\u0131ndaki s\u00fcreyi kademeli olarak art\u0131rmak, sunucu y\u00fck\u00fcn\u00fc azalt\u0131r ve kaynaklar\u0131 korur.<\/li>\n<li><strong>G\u00fcnl\u00fckleme (Logging) ve \u0130zleme (Monitoring):<\/strong> Arka plan g\u00f6revlerinizin durumunu ve potansiyel hatalar\u0131n\u0131 kaydeden kapsaml\u0131 bir g\u00fcnl\u00fckleme sistemi kurun. Bu loglar\u0131 uzaktan izleyebilece\u011finiz bir platforma (\u00f6rne\u011fin, AppGallery Connect'in Apm servisi) entegre etmek, proaktif bir \u015fekilde sorunlar\u0131 tespit etmenize ve \u00e7\u00f6zmenize olanak tan\u0131r.<\/li>\n<li><strong>Kullan\u0131c\u0131ya Geri Bildirim:<\/strong> \u00d6zellikle uzun s\u00fcren veya kritik arka plan g\u00f6revleri ba\u015far\u0131s\u0131z oldu\u011funda, kullan\u0131c\u0131ya anlaml\u0131 bir geri bildirim sunmak \u00f6nemlidir. Bu, bir bildirim veya uygulaman\u0131n aray\u00fcz\u00fcnde bir uyar\u0131 mesaj\u0131 \u015feklinde olabilir, b\u00f6ylece kullan\u0131c\u0131 sorundan haberdar olur ve gerekirse manuel olarak m\u00fcdahale edebilir.<\/li>\n<\/ul>\n<p>Bu ileri d\u00fczey teknikler, HarmonyOS Next uygulamalar\u0131n\u0131z\u0131n arka plan g\u00f6revlerini sadece i\u015flevsel k\u0131lmakla kalmay\u0131p, ayn\u0131 zamanda onlar\u0131 sa\u011flam, verimli ve kullan\u0131c\u0131 dostu hale getirmenize yard\u0131mc\u0131 olacakt\u0131r. Unutmay\u0131n, iyi y\u00f6netilen arka plan g\u00f6revleri, modern uygulama geli\u015ftirmenin ayr\u0131lmaz bir par\u00e7as\u0131d\u0131r.<\/p>\n<div class=\"tip\">\n      Uzman \u0130pucu: Batarya t\u00fcketimini ger\u00e7ek zamanl\u0131 izlemek i\u00e7in HarmonyOS Next'in geli\u015ftirici ara\u00e7lar\u0131n\u0131 kullan\u0131n. Bu ara\u00e7lar, uygulaman\u0131z\u0131n hangi servislerinin ne kadar pil t\u00fcketti\u011fini detayl\u0131 bir \u015fekilde g\u00f6sterir, b\u00f6ylece darbo\u011fazlar\u0131 kolayca tespit edebilirsiniz. Ayr\u0131ca, WorkScheduler taraf\u0131ndan zamanlanan g\u00f6revlerin ba\u015far\u0131l\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in HarmonyOS cihaz\u0131ndaki geli\u015ftirici se\u00e7eneklerini inceleyebilirsiniz.\n    <\/div>\n<h2>Farkl\u0131 Cihaz Ekosistemlerinde Arka Plan G\u00f6revleri ve Uyum<\/h2>\n<p>HarmonyOS Next'in temel vaatlerinden biri, \"s\u00fcper cihaz\" yetenekleriyle uygulamalar\u0131n farkl\u0131 form fakt\u00f6rleri ve kapasitelerdeki cihazlar aras\u0131nda sorunsuz bir \u015fekilde \u00e7al\u0131\u015fabilmesidir. Bu da\u011f\u0131t\u0131k yap\u0131, arka plan g\u00f6revlerinin y\u00f6netimini de farkl\u0131 bir boyuta ta\u015f\u0131r. Bir g\u00f6revin ak\u0131ll\u0131 telefonda y\u00fcr\u00fct\u00fclmesi ile ak\u0131ll\u0131 saatte veya ak\u0131ll\u0131 televizyonda y\u00fcr\u00fct\u00fclmesi aras\u0131nda \u00f6nemli farklar bulunur.<\/p>\n<p>Her cihaz t\u00fcr\u00fcn\u00fcn kendi \u00f6zel k\u0131s\u0131tlamalar\u0131 vard\u0131r: Ak\u0131ll\u0131 saatler genellikle \u00e7ok s\u0131n\u0131rl\u0131 pil \u00f6mr\u00fcne, daha az i\u015flem g\u00fcc\u00fcne ve daha yava\u015f a\u011f ba\u011flant\u0131lar\u0131na sahiptir. Ak\u0131ll\u0131 televizyonlar ise daha istikrarl\u0131 bir g\u00fc\u00e7 kayna\u011f\u0131na ve a\u011f ba\u011flant\u0131s\u0131na sahipken, uygulaman\u0131n \u00f6n planda olmama durumu (kullan\u0131c\u0131 TV izlerken) \u00e7ok daha uzun s\u00fcrebilir. Bu farkl\u0131l\u0131klar, geli\u015ftiricilerin arka plan g\u00f6revlerini tasarlarken ve uygularken dikkatli olmas\u0131n\u0131 gerektirir.<\/p>\n<p><strong>Cihaz \u00d6zelliklerine G\u00f6re Adaptif Planlama:<\/strong><\/p>\n<ul>\n<li><strong>Ak\u0131ll\u0131 Saatler \u0130\u00e7in:<\/strong> Ak\u0131ll\u0131 saatlerde batarya \u00f6mr\u00fc kritik oldu\u011fundan, arka plan g\u00f6revleri m\u00fcmk\u00fcn oldu\u011funca k\u0131sa s\u00fcreli olmal\u0131 ve s\u0131k s\u0131k \u00e7al\u0131\u015ft\u0131r\u0131lmamal\u0131d\u0131r. \u00d6rne\u011fin, veri senkronizasyonu i\u00e7in <code>WorkInfo.NetworkType.NETWORK_TYPE_WIFI<\/code> yerine <code>NETWORK_TYPE_ANY<\/code> kullan\u0131lsa bile, g\u00f6revin <code>setIsCharging(true)<\/code> k\u0131s\u0131tlamas\u0131yla sadece \u015farj olurken \u00e7al\u0131\u015fmas\u0131 tercih edilebilir. Ayr\u0131ca, k\u00fc\u00e7\u00fck veri paketlerini s\u0131k s\u0131k g\u00f6ndermek yerine, daha az s\u0131kl\u0131kta ama daha b\u00fcy\u00fck veri paketleri g\u00f6ndermek daha verimli olabilir.<\/li>\n<li><strong>Ak\u0131ll\u0131 Telefonlar ve Tabletler \u0130\u00e7in:<\/strong> Bu cihazlar genellikle daha g\u00fc\u00e7l\u00fc i\u015flemcilere ve daha b\u00fcy\u00fck bataryalara sahiptir. Bu, daha yo\u011fun veya daha s\u0131k arka plan g\u00f6revlerine izin verebilir. Ancak, hala batarya t\u00fcketimi ve performans kritik oldu\u011fundan, <code>WorkScheduler<\/code> k\u0131s\u0131tlamalar\u0131 dengeli bir \u015fekilde kullan\u0131lmal\u0131d\u0131r.<\/li>\n<li><strong>Ak\u0131ll\u0131 Televizyonlar \u0130\u00e7in:<\/strong> Ak\u0131ll\u0131 televizyonlar genellikle s\u00fcrekli g\u00fcce ba\u011fl\u0131d\u0131r ve daha stabil bir a\u011f ba\u011flant\u0131s\u0131na sahiptir. Bu platformda arka plan g\u00f6revleri, daha uzun s\u00fcreli medya g\u00fcncellemeleri, uygulama i\u00e7i veritaban\u0131 bak\u0131m\u0131 veya i\u00e7erik \u00f6nbellekleme gibi i\u015flemleri i\u00e7erebilir. <code>setIsIdle(true)<\/code> k\u0131s\u0131tlamas\u0131 burada \u00e7ok daha uzun s\u00fcre aktif kalabilece\u011fi i\u00e7in dikkatli kullan\u0131lmal\u0131, zira kullan\u0131c\u0131 TV'yi izlerken bile uygulamalar\u0131n arka plan g\u00fcncellemesi yapmas\u0131 beklenebilir.<\/li>\n<\/ul>\n<p>HarmonyOS Next'in da\u011f\u0131t\u0131k yetenekleri, bir uygulaman\u0131n arka plan g\u00f6revinin bir cihazda ba\u015flat\u0131l\u0131p, daha uygun kaynaklara sahip ba\u015fka bir cihazda (\u00f6rne\u011fin, ak\u0131ll\u0131 saatteki bir veriyi telefonun i\u015fleyip g\u00f6ndermesi) tamamlanmas\u0131na olanak tan\u0131r. Bu \"g\u00f6rev aktar\u0131m\u0131\" (task migration) yetenekleri, gelecekteki HarmonyOS Next uygulamalar\u0131 i\u00e7in b\u00fcy\u00fck bir optimizasyon potansiyeli sunmaktad\u0131r.<\/p>\n<p>Geli\u015ftiricilerin, uygulaman\u0131n \u00e7al\u0131\u015faca\u011f\u0131 farkl\u0131 cihaz form fakt\u00f6rlerini g\u00f6z \u00f6n\u00fcnde bulundurarak, arka plan g\u00f6revlerini tasarlamas\u0131 ve test etmesi hayati \u00f6nem ta\u015f\u0131r. Bu, sadece uygulaman\u0131n UI\/UX'inin cihaz boyutuna g\u00f6re adapte olmas\u0131 de\u011fil, ayn\u0131 zamanda arka plan g\u00f6revlerinin de cihaz\u0131n donan\u0131m ve yaz\u0131l\u0131m k\u0131s\u0131tlamalar\u0131na g\u00f6re ak\u0131ll\u0131ca \u00f6l\u00e7eklenmesi anlam\u0131na gelir. \u00d6rne\u011fin, HarmonyOS'ta medya sorgular\u0131 (media queries) veya <code>@media<\/code> kurallar\u0131 ile UI'nin farkl\u0131 ekran boyutlar\u0131na adaptasyonu sa\u011flan\u0131rken, arka plan g\u00f6revleri de cihaz\u0131n performans\u0131na g\u00f6re dinamik olarak ayarlanabilir. Bu, kullan\u0131c\u0131ya cihaz ne olursa olsun tutarl\u0131 ve optimize edilmi\u015f bir deneyim sunman\u0131n anahtar\u0131d\u0131r.<\/p>\n<p>A\u015fa\u011f\u0131da mobil uyumlu bir CSS \u00f6rne\u011fi verilmi\u015ftir. Bu kod, HarmonyOS Next uygulamalar\u0131 i\u00e7in UI'nin farkl\u0131 ekran boyutlar\u0131na nas\u0131l adapte edilebilece\u011fini g\u00f6sterir. Arka plan g\u00f6revlerinin sonu\u00e7lar\u0131n\u0131n bu UI'ye nas\u0131l yans\u0131d\u0131\u011f\u0131, uygulaman\u0131n da\u011f\u0131t\u0131k yetenekleriyle birlikte daha da anlam kazan\u0131r.<\/p>\n<pre><code class=\"language-css\">\n        \/* Genel stil *\/\n        body {\n            font-family: 'HarmonyOS Sans', sans-serif;\n            background-color: #f0f2f5;\n            color: #333;\n        }\n\n        .container {\n            width: 90%;\n            margin: 0 auto;\n            padding: 20px;\n            background-color: #fff;\n            border-radius: 8px;\n            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n        }\n\n        \/* K\u00fc\u00e7\u00fck ekranlar (\u00f6rn. ak\u0131ll\u0131 saatler, telefonlar) *\/\n        @media screen and (max-width: 768px) {\n            .container {\n                width: 95%;\n                padding: 10px;\n            }\n            h2 {\n                font-size: 1.2em;\n            }\n            p {\n                font-size: 0.9em;\n            }\n        }\n\n        \/* Orta ekranlar (\u00f6rn. tabletler) *\/\n        @media screen and (min-width: 769px) and (max-width: 1200px) {\n            .container {\n                width: 80%;\n                padding: 15px;\n            }\n            h2 {\n                font-size: 1.5em;\n            }\n            p {\n                font-size: 1em;\n            }\n        }\n\n        \/* B\u00fcy\u00fck ekranlar (\u00f6rn. ak\u0131ll\u0131 TV'ler) *\/\n        @media screen and (min-width: 1201px) {\n            .container {\n                width: 70%;\n                padding: 25px;\n            }\n            h2 {\n                font-size: 1.8em;\n            }\n            p {\n                font-size: 1.1em;\n            }\n        }\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu CSS \u00f6rne\u011fi, farkl\u0131 cihazlara g\u00f6re UI'nin nas\u0131l ayarlanabilece\u011fini g\u00f6sterirken, arka plan g\u00f6revleri de benzer \u015fekilde cihaz\u0131n kapasitesine ve kullan\u0131m senaryosuna g\u00f6re dinamik olarak optimize edilmelidir. \u00d6rne\u011fin, bir ak\u0131ll\u0131 saatte konum verileri daha seyrek al\u0131n\u0131rken, bir ak\u0131ll\u0131 telefonda daha s\u0131k al\u0131nabilir ve bu veriler, yukar\u0131daki CSS \u00f6rne\u011fi ile farkl\u0131 b\u00fcy\u00fckl\u00fckteki ekranlarda en uygun \u015fekilde g\u00f6sterilebilir.<\/p>\n<h2>HarmonyOS Next'in G\u00fcc\u00fcn\u00fc Arka Plan G\u00f6revleriyle Ke\u015ffetmek<\/h2>\n<p>Bu makale boyunca, HarmonyOS Next platformunda arka plan g\u00f6revlerinin ne kadar kritik bir rol oynad\u0131\u011f\u0131n\u0131, nas\u0131l tan\u0131mlan\u0131p y\u00f6netildi\u011fini ve ger\u00e7ek d\u00fcnya senaryolar\u0131nda nas\u0131l kullan\u0131labilece\u011fini detayl\u0131 bir \u015fekilde inceledik. Modern uygulamalar\u0131n kullan\u0131c\u0131ya kesintisiz bir deneyim sunma gereklili\u011fi, arka plan g\u00f6revlerinin etkin ve verimli y\u00f6netilmesini zorunlu k\u0131lmaktad\u0131r. HarmonyOS Next'in <code>WorkScheduler<\/code> ve \u00f6n plan hizmetleri gibi g\u00fc\u00e7l\u00fc API'leri, geli\u015ftiricilere bu zorluklar\u0131n \u00fcstesinden gelmeleri i\u00e7in gerekli ara\u00e7lar\u0131 sunmaktad\u0131r.<\/p>\n<p>Batarya t\u00fcketimini minimize etme, g\u00f6revleri birle\u015ftirme, hata y\u00f6netimi ve farkl\u0131 cihaz form fakt\u00f6rlerine uyum gibi ileri d\u00fczey teknikler, uygulamalar\u0131n\u0131z\u0131n sadece i\u015flevsel de\u011fil, ayn\u0131 zamanda sa\u011flam, enerji verimli ve kullan\u0131c\u0131 dostu olmas\u0131n\u0131 sa\u011flar. HarmonyOS Next'in da\u011f\u0131t\u0131k mimarisi, arka plan g\u00f6revlerinin tek bir cihazla s\u0131n\u0131rl\u0131 kalmay\u0131p, s\u00fcper cihaz yetenekleriyle farkl\u0131 cihazlar aras\u0131nda ak\u0131ll\u0131ca koordine edilebilmesinin \u00f6n\u00fcn\u00fc a\u00e7maktad\u0131r. Bu, gelecekteki uygulamalar i\u00e7in yenilik\u00e7i senaryolar ve benzersiz kullan\u0131c\u0131 deneyimleri yaratma potansiyeli ta\u015f\u0131r.<\/p>\n<p>Geli\u015ftiriciler olarak, HarmonyOS Next'in sundu\u011fu bu ara\u00e7lar\u0131 do\u011fru bir \u015fekilde anlamak ve uygulamalar\u0131m\u0131za entegre etmek, kullan\u0131c\u0131 memnuniyetini art\u0131rman\u0131n ve platformun sundu\u011fu t\u00fcm potansiyeli kullanman\u0131n anahtar\u0131d\u0131r. Arka plan g\u00f6revleri, uygulaman\u0131z\u0131n g\u00f6r\u00fcnmeyen kahramanlar\u0131d\u0131r; onlar\u0131 ustaca y\u00f6netmek, uygulaman\u0131z\u0131n genel ba\u015far\u0131s\u0131n\u0131 do\u011frudan etkileyecektir. HarmonyOS Next'in s\u00fcrekli geli\u015fen ekosisteminde, arka plan g\u00f6rev y\u00f6netimi yeteneklerinin de evrimle\u015fmeye devam edece\u011fi a\u00e7\u0131kt\u0131r, bu nedenle en son yenilikleri takip etmek her zaman faydal\u0131 olacakt\u0131r.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<ul>\n<li><strong>1. Arka plan g\u00f6revleri batarya \u00f6mr\u00fcn\u00fc nas\u0131l etkiler?<\/strong>\n<p>Arka plan g\u00f6revleri, k\u00f6t\u00fc y\u00f6netildi\u011finde cihaz\u0131n batarya \u00f6mr\u00fcn\u00fc \u00f6nemli \u00f6l\u00e7\u00fcde etkileyebilir. S\u00fcrekli \u00e7al\u0131\u015fan, s\u0131k s\u0131k a\u011f iste\u011fi yapan veya yo\u011fun i\u015flem g\u00fcc\u00fc gerektiren g\u00f6revler bataryan\u0131n h\u0131zla t\u00fckenmesine neden olur. HarmonyOS Next'te <code>WorkScheduler<\/code> gibi ara\u00e7lar, g\u00f6revleri cihaz\u0131n \u015farjda oldu\u011fu, Wi-Fi'ye ba\u011fl\u0131 oldu\u011fu veya bo\u015fta oldu\u011fu zamanlar gibi en uygun ko\u015fullarda \u00e7al\u0131\u015ft\u0131rarak bu etkiyi minimize etmeyi ama\u00e7lar.<\/p>\n<\/li>\n<li><strong>2. WorkScheduler yerine ba\u015fka bir y\u00f6ntem kullanmal\u0131 m\u0131y\u0131m?<\/strong>\n<p><code>WorkScheduler<\/code>, \u00e7o\u011fu zaman periyodik veya ko\u015fullu arka plan g\u00f6revleri i\u00e7in \u00f6nerilen HarmonyOS Next \u00e7\u00f6z\u00fcm\u00fcd\u00fcr. Ancak, kullan\u0131c\u0131n\u0131n do\u011frudan etkile\u015fimde oldu\u011fu ve durdurulmamas\u0131 gereken uzun s\u00fcreli i\u015flemler (\u00f6rne\u011fin, m\u00fczik \u00e7alma, navigasyon s\u0131ras\u0131nda konum takibi) i\u00e7in \u00f6n plan hizmetleri (Foreground Services) daha uygun olabilir. \u00c7ok k\u0131sa s\u00fcreli ve acil durumlar i\u00e7in ise <code>BackgroundTaskMgr<\/code> gibi daha d\u00fc\u015f\u00fck seviyeli API'ler d\u00fc\u015f\u00fcn\u00fclebilir, ancak bu, genellikle sistem k\u0131s\u0131tlamalar\u0131na daha fazla tabidir.<\/p>\n<\/li>\n<li><strong>3. Bir arka plan g\u00f6revinin tamamland\u0131\u011f\u0131n\u0131 kullan\u0131c\u0131ya nas\u0131l bildirebilirim?<\/strong>\n<p>Arka plan g\u00f6revi tamamland\u0131\u011f\u0131nda veya \u00f6nemli bir durum de\u011fi\u015fikli\u011fi oldu\u011funda, kullan\u0131c\u0131ya bildirim (notification) g\u00f6ndermek en yayg\u0131n y\u00f6ntemdir. HarmonyOS Next'in bildirim API'leri kullan\u0131larak, g\u00f6revin sonucunu veya ilgili bilgiyi i\u00e7eren bir bildirim olu\u015fturup kullan\u0131c\u0131ya sunabilirsiniz. \u00d6n plan hizmetleri kullan\u0131l\u0131yorsa, bildirim zaten hizmetin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 belirtmek i\u00e7in s\u00fcrekli olarak g\u00f6sterilir ve g\u00fcncellenebilir.<\/p>\n<\/li>\n<li><strong>4. Arka plan g\u00f6revleri her zaman \u00e7al\u0131\u015f\u0131r m\u0131?<\/strong>\n<p>Hay\u0131r, i\u015fletim sistemleri pil \u00f6mr\u00fcn\u00fc ve sistem performans\u0131n\u0131 korumak i\u00e7in arka plan g\u00f6revlerini s\u0131k\u0131 bir \u015fekilde y\u00f6netir ve k\u0131s\u0131tlar. HarmonyOS Next de bu prensiple \u00e7al\u0131\u015f\u0131r. <code>WorkScheduler<\/code> ile tan\u0131mlanan g\u00f6revler, belirlenen ko\u015fullar (a\u011f ba\u011flant\u0131s\u0131, \u015farj durumu, cihaz bo\u015fta kalma s\u00fcresi) kar\u015f\u0131land\u0131\u011f\u0131nda \u00e7al\u0131\u015f\u0131r. E\u011fer bu ko\u015fullar sa\u011flanmazsa veya sistem kaynaklar\u0131 yetersizse, g\u00f6rev ertelenebilir veya durdurulabilir. \u00d6n plan hizmetleri ise kullan\u0131c\u0131ya g\u00f6r\u00fcn\u00fcr bir bildirimle daha uzun s\u00fcre \u00e7al\u0131\u015fma garantisi sunar.<\/p>\n<\/li>\n<li><strong>5. Hangi t\u00fcr g\u00f6revler i\u00e7in WorkScheduler idealdir?<\/strong>\n<p><code>WorkScheduler<\/code>, \u00f6zellikle esnek zamanlamaya sahip, periyodik veri senkronizasyonlar\u0131, veritaban\u0131 temizli\u011fi, log y\u00fckleme, e-posta kontrol\u00fc veya i\u00e7erik \u00f6nbellekleme gibi g\u00f6revler i\u00e7in idealdir. Kritik olmayan, kullan\u0131c\u0131n\u0131n hemen geri bildirim beklemedi\u011fi ve sistemin pil \u00f6mr\u00fcn\u00fc optimize ederek en uygun zamanda \u00e7al\u0131\u015ft\u0131rabilece\u011fi t\u00fcm arka plan i\u015flemleri <code>WorkScheduler<\/code> ile y\u00f6netilmelidir.<\/p>\n<\/li>\n<\/ul>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Modern mobil uygulamalar, kullan\u0131c\u0131ya kesintisiz ve ak\u0131c\u0131 bir deneyim sunmak i\u00e7in arka planda bir\u00e7ok i\u015flemi sessizce y\u00fcr\u00fct\u00fcr. Peki,&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-33004","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>HarmonyOS Next&#039;te Arka Plan G\u00f6revleri: Kapsaml\u0131 Rehber<\/title>\n<meta name=\"description\" content=\"Modern mobil uygulamalar, kullan\u0131c\u0131ya kesintisiz ve ak\u0131c\u0131 bir deneyim sunmak i\u00e7in arka planda bir\u00e7ok i\u015flemi sessizce y\u00fcr\u00fct\u00fcr. Peki, HarmonyOS Next gibi yeni nesil bir i\u015fletim sisteminde bu arka plan g\u00f6revlerini verimli, g\u00fcvenli ve batarya dostu bir \u015fekilde nas\u0131l y\u00f6netebiliriz? Bu makale, HarmonyOS Next&#039;in arka plan g\u00f6revleri mimarisini, temel kavramlar\u0131n\u0131 ve uygulama y\u00f6ntemlerini derinlemesine inceleyerek geli\u015ftiricilere kapsaml\u0131 bir rehber sunmaktad\u0131r.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"HarmonyOS Next&#039;te Arka Plan G\u00f6revleri: Kapsaml\u0131 Rehber\" \/>\n<meta property=\"og:description\" content=\"Modern mobil uygulamalar, kullan\u0131c\u0131ya kesintisiz ve ak\u0131c\u0131 bir deneyim sunmak i\u00e7in arka planda bir\u00e7ok i\u015flemi sessizce y\u00fcr\u00fct\u00fcr. Peki, HarmonyOS Next gibi yeni nesil bir i\u015fletim sisteminde bu arka plan g\u00f6revlerini verimli, g\u00fcvenli ve batarya dostu bir \u015fekilde nas\u0131l y\u00f6netebiliriz? Bu makale, HarmonyOS Next&#039;in arka plan g\u00f6revleri mimarisini, temel kavramlar\u0131n\u0131 ve uygulama y\u00f6ntemlerini derinlemesine inceleyerek geli\u015ftiricilere kapsaml\u0131 bir rehber sunmaktad\u0131r.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-28T07:01:44+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"30 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"HarmonyOS Next&#8217;te Arka Plan G\u00f6revleri: Kapsaml\u0131 Rehber\",\"datePublished\":\"2025-10-28T07:01:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber\/\"},\"wordCount\":5068,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber\/\",\"name\":\"HarmonyOS Next'te Arka Plan G\u00f6revleri: Kapsaml\u0131 Rehber\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-28T07:01:44+00:00\",\"description\":\"Modern mobil uygulamalar, kullan\u0131c\u0131ya kesintisiz ve ak\u0131c\u0131 bir deneyim sunmak i\u00e7in arka planda bir\u00e7ok i\u015flemi sessizce y\u00fcr\u00fct\u00fcr. Peki, HarmonyOS Next gibi yeni nesil bir i\u015fletim sisteminde bu arka plan g\u00f6revlerini verimli, g\u00fcvenli ve batarya dostu bir \u015fekilde nas\u0131l y\u00f6netebiliriz? Bu makale, HarmonyOS Next'in arka plan g\u00f6revleri mimarisini, temel kavramlar\u0131n\u0131 ve uygulama y\u00f6ntemlerini derinlemesine inceleyerek geli\u015ftiricilere kapsaml\u0131 bir rehber sunmaktad\u0131r.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"HarmonyOS Next&#8217;te Arka Plan G\u00f6revleri: Kapsaml\u0131 Rehber\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"HarmonyOS Next'te Arka Plan G\u00f6revleri: Kapsaml\u0131 Rehber","description":"Modern mobil uygulamalar, kullan\u0131c\u0131ya kesintisiz ve ak\u0131c\u0131 bir deneyim sunmak i\u00e7in arka planda bir\u00e7ok i\u015flemi sessizce y\u00fcr\u00fct\u00fcr. Peki, HarmonyOS Next gibi yeni nesil bir i\u015fletim sisteminde bu arka plan g\u00f6revlerini verimli, g\u00fcvenli ve batarya dostu bir \u015fekilde nas\u0131l y\u00f6netebiliriz? Bu makale, HarmonyOS Next'in arka plan g\u00f6revleri mimarisini, temel kavramlar\u0131n\u0131 ve uygulama y\u00f6ntemlerini derinlemesine inceleyerek geli\u015ftiricilere kapsaml\u0131 bir rehber sunmaktad\u0131r.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"HarmonyOS Next'te Arka Plan G\u00f6revleri: Kapsaml\u0131 Rehber","og_description":"Modern mobil uygulamalar, kullan\u0131c\u0131ya kesintisiz ve ak\u0131c\u0131 bir deneyim sunmak i\u00e7in arka planda bir\u00e7ok i\u015flemi sessizce y\u00fcr\u00fct\u00fcr. Peki, HarmonyOS Next gibi yeni nesil bir i\u015fletim sisteminde bu arka plan g\u00f6revlerini verimli, g\u00fcvenli ve batarya dostu bir \u015fekilde nas\u0131l y\u00f6netebiliriz? Bu makale, HarmonyOS Next'in arka plan g\u00f6revleri mimarisini, temel kavramlar\u0131n\u0131 ve uygulama y\u00f6ntemlerini derinlemesine inceleyerek geli\u015ftiricilere kapsaml\u0131 bir rehber sunmaktad\u0131r.","og_url":"https:\/\/fatihsoysal.com\/blog\/harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-28T07:01:44+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"30 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"HarmonyOS Next&#8217;te Arka Plan G\u00f6revleri: Kapsaml\u0131 Rehber","datePublished":"2025-10-28T07:01:44+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber\/"},"wordCount":5068,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber\/","name":"HarmonyOS Next'te Arka Plan G\u00f6revleri: Kapsaml\u0131 Rehber","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-28T07:01:44+00:00","description":"Modern mobil uygulamalar, kullan\u0131c\u0131ya kesintisiz ve ak\u0131c\u0131 bir deneyim sunmak i\u00e7in arka planda bir\u00e7ok i\u015flemi sessizce y\u00fcr\u00fct\u00fcr. Peki, HarmonyOS Next gibi yeni nesil bir i\u015fletim sisteminde bu arka plan g\u00f6revlerini verimli, g\u00fcvenli ve batarya dostu bir \u015fekilde nas\u0131l y\u00f6netebiliriz? Bu makale, HarmonyOS Next'in arka plan g\u00f6revleri mimarisini, temel kavramlar\u0131n\u0131 ve uygulama y\u00f6ntemlerini derinlemesine inceleyerek geli\u015ftiricilere kapsaml\u0131 bir rehber sunmaktad\u0131r.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/harmonyos-nextte-arka-plan-gorevleri-kapsamli-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"HarmonyOS Next&#8217;te Arka Plan G\u00f6revleri: Kapsaml\u0131 Rehber"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33004","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=33004"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33004\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=33004"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=33004"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=33004"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}