5.00 / 1 oy

Android uygulamasının arka planda çalışmasını sağlamak

Sadece aktifken çalışan Android uygulamarı yerine telefonunuzda arka planda sürekli olarak çalışan bir Android uygulaması geliştirmek istiyorsanız, yapmanız gereken bir servis eklemektir. Servis (service) eklemek ise hiç de göründüğü kadar zor olmayan bir işlemdir ve birkaç düzenleme ile kolayca yapılabilir.

android servis

Örnek olarak kodlamış ve halihazırda kullanmakta olduğunuz bir uygulamanın arka planda çalışması için eklemeniz gerken kodlar şu şelilde:

 

Android Studio'da Servis eklemek ve arka planda çalışan bir uygulama geliştirmek

Adım 1: Tasarım

Bu uygulamayı olabildiğince göz korkutmayacak şekilde sunabilmem için gereksiz kod kalabalıklarının olmamasını tercih ettim. Bu yüzden tasarım konusunu bu uygulamanın dışında tutuyoum. res/layout/activity_main.xml dosyasında uygulamanızın tasarımını geliştirebilirsiniz.

Adım 2: Servis sınıfı

Uygulamanıza servis.js adında bir java class'ı ekleyin ve aşağıdaki kodlarla güncelleyin:

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;

public class servis extends Service {
   @Override
   public IBinder onBind(Intent intent) {
      return null;
   }
   @Override
   public int onStartCommand(Intent intent, int flags, int startId) {
      Toast.makeText(this, "Service başlatıldı", Toast.LENGTH_LONG).show();
      return START_STICKY;
   }
   @Override
   public void onDestroy() {
      super.onDestroy();
      Toast.makeText(this, "Service sonlandırıldı", Toast.LENGTH_LONG).show();
   }
}

Adım 3: manifest.xml

manifest.xml dosyasını açın ve application node'u içine aşağıdaki satırı ekleyin.

<service android:name = ".servis"/>

Adım 4: MainActivity

Son adım olarak MainActivity içerisinde servisi başlatmamız gerekiyor. Bu işlemi bir butonun tıklanması ile başlatıp sonlandıracak şekilde de düzenleyebilirsiniz, ya da onCreate metodu altında doğrudan başlatıp hiç sonlandırmadan kullanmak isterseniz aşağıdaki kodu eklemelisiniz.

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ...

    startService(new Intent(MainActivity.this,service.class));
    
    ...
}

 

utku33

13.04.2020 04:30

Bu soru 1 kez yanıtlandı.

Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.

Reitix
Android uygulamasının arka planda çalışmasını sağlamak

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.