Урок за Android Services: Как да стартирам приложение във фонов режим?



Този урок за Android Services ви помага да разберете как да извършвате операции на заден план, като например възпроизвеждане на музика. В него няма прикачен потребителски интерфейс

Често използвайки множество приложения на вашия смартфон, може да искате да превключвате от едно приложение на друго, но също така да гарантирате, че всичките ви приложения остават активни във фонов режим. Това не са нищо друго освен услугите, предлагани от . И така, тази статия за Урок за Android Services ще ви помогне да разберете как да работите с Услугите.

как да обърна низовете в python

Ще разгледам следните теми:





Какво представляват услугите за Android?

Обслужването е основно процес. Услуга за Android е компонент, който работи във фонов режим с цел изпълнениедълготрайни операции без взаимодействие с потребителя и работи дори ако приложението е унищожено.Друг компонент на приложението може да стартира услуга и тя продължава да работи във фонов режим, дори ако преминете към друго приложение.

Освен това компонентът може да се свърже с услуга, за да взаимодейства с нея и също така да осъществява междупроцесната комуникация.



Забележка: Android.app.Service е подклас от клас ContextWrapper и услугата Android не е нишка или отделен процес.

Жизнен цикъл на Android- Services

Жизненият цикъл на услугите за Android може да има две форми на услуги. Жизненият цикъл на услугата следва два различни пътя, а именно:

  1. Започна
  2. Обвързан

Започна



Услугата се стартира при извикване на компонент на приложение startService () метод. Веднъж стартирана, услуга може да работи във фонов режим за неопределено време, дори ако компонентът, който е отговорен за стартирането, е унищожен. Спира се с помощта на stopService () метод. Услугата може също да се спре, като се обади на stopSelf () метод.

Обвързан

Услугата е обвързана, когато компонент на приложение се свърже с нея чрез извикване bindService () . Обвързаната услуга предлага интерфейс клиент-сървър, който позволява на компонентите да взаимодействат с услугата, да изпращат заявки и да получават резултати. Той обработва през междупроцесната комуникация (IPC). Клиентът може да отмени услугата, като се обади на unbindService () метод.

Жизнен цикъл на Android Service - Урок за Android Services - Edureka

Преминавайки към следващия раздел на тази статия за Android Services, нека обсъдим различнитеметоди в класа на услугата.

Урок за Android Services: Методи

Има няколко метода, чрез които можете лесно да извършвате операции с всяко приложение. Някои от тях са:

МетодОписание
onStartCommand ()

Този метод се извиква, когато всеки друг компонент, като например дадена дейност, поиска стартирането на услугата, чрез обаждане startService () .

Ваша отговорност е да спрете услугата, когато съответната работа е извършена чрез използване stopSelf () или stopService () методи.

развързване ()

Извиква този метод, когато друг компонент иска да се свърже с услугата чрез обаждане bindService () .

За да приложите това, трябва да предоставите интерфейс, който клиентите използват, за да комуникират с услугата. Той връща IBinder обект. Ако не искате да разрешите обвързване, върнете се нула .

onUnbind ()

Системата извиква този метод, когато всички клиенти са изключени от определен интерфейс, публикуван от услугата.

onRebind ()

Извиква този метод, когато нови клиенти са свързани към услугата, след като преди това е бил уведомен, че всички са изключени onUnbind (намерение) .

onCreate ()

Системата извиква този метод, когато услугата е създадена за първи път onStartCommand () или развързване () . Необходимо е да се извърши еднократна настройка.

onDestroy ()

Този метод се извиква, когато услугата вече не се използва и е унищожена. Вашата услуга трябва да приложи това, за да изчисти всички ресурси като нишки, регистрирани слушатели, приемници и т.н.

Код на скелета

публичен клас MainActivity разширява Activity {private TextView textView private BroadcastReceiver receiver = new BroadcastReceiver () {@Override public void onReceive (Context context, Intent intent) {Bundle bundle = intent.getExtras () if (bundle! = null) {String string = bundle.getString (DownloadService.FILEPATH) int resultCode = bundle.getInt (DownloadService.RESULT) if (resultCode == RESULT_OK) {Toast.makeText (MainActivity.this, 'Изтеглянето завършено. Изтегляне на URI:' + низ, Toast.LENGTH_LONG) .show () textView.setText ('Изтеглянето е извършено')} else {Toast.makeText (MainActivity.this, 'Изтеглянето не бе успешно', Toast.LENGTH_LONG) .show () textView.setText ('Изтеглянето не бе успешно')}}}} @Override public void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState) setContentView (R.layout.activity_main) textView = (TextView) findViewById (R.id.status)} @Override protected void onResume () {super.on. ) registerReceiver (приемник, нов IntentFilter (DownloadService.NOTIFICATION))} @Override protected void onPause () {super.onPause () unregisterReceiver (receiver)} public void onClick (View view) {Intent intent = new Intent (this, DownloadService.class) // добавяне на информация за услугата кой файл да се изтегли и къде да се съхранявайте intent.putExtra (DownloadService.FILENAME, 'index.html') intent.putExtra (DownloadService.URL, 'www.edureka.co') startService (намерение) textView.setText ('Стартирана услуга')}}

В този пример можете да видите методите като onCreate () , onResume () , onPause () . Тези методи съставят структурата на Услугите в Android.

Сега, стигайки до практическата част на този урок за Android Services, нека да видимкак да създадете услуга и да се справите с нея.

Демонстрация

Нека да видим как да пускаме музика във фонов режим. За да направя това, ще използвам Студио Andriod .

Етап 1

Създайте нов празен проект. Наименувайте проекта си и щракнете върху папката Java и щракнете върху Основна дейност . Първо добавете MediaPlayer за да можете да импортирате подробности за плейъра като старт, да зададете цикъла и така нататък.

пакет com.example.mydemoapplication внос androidx.appcompat.app.AppCompatActivity обществени клас MainActivity простира AppCompatActivity {@Override защитена нищожен onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState) setContentView (R.layout.activity_main) MediaPlayer играч = MediaPlayer.create (това, Settings.System.DEFAULT_ALARM_ALERT_URI) player.setLooping (true) player.start ()}}

Забележка: Ако го използвате за първи път, не забравяйте да активирате BIOS. Можете да направите това, като рестартирате системата си.

Ще трябва да добавите виртуално устройство. Просто кликнете върху Отворете AVD мениджъра.

Изберете устройство по ваш избор и сте готови за работа!

Това ще се изпълнява само когато екранът е активен, но за да може това приложение да работи дори във фонов режим, трябва да добавите още няколко реда код в Activity_main.xml файл.

Стъпка 2

След като стартирате съответния код, ще можете да стартирате приложението и ще можете да възпроизвеждате музиката на заден план, т.е. ако се отвори друго приложение, този звук ще продължи да се възпроизвежда.

Нека да видим как това може да се направи.

  • Създайте друг клас в папката Java и го наименувайте. Ето, нарекох го „ MyService '.
  • Този клас разширява класа Service.
  • След като разполагате с методите на Service Service, внедрете методите, като щракнете върху alt + Enter.
  • След това трябва да замените методите. Така че, щракнете с десния бутон върху прозореца, за да получите опциите.
  • Генерирайте методите за заместване, изберете onStartCommand () , и OnDestroy ().
  • Редактирайте onStartCommand () методи чрез добавяне на следния код .:
MediaPlayer плейър = MediaPlayer.create (това, Settings.System.DEFAULT_ALARM_ALERT_URI) player.setLooping (true) player.start ()

Забележка: Изтрийте този код в Основна дейност.

  • Това ще доведе до грешка с искане да премахнете изявлението. И така, премахнете оператора return и декларирайте MediaPlayer като частен метод и се върнете START_STICKY . Това ще върне стартовия статус.
  • Добавяне player.stop () в onDestroy () метод.

Стъпка 3

Отидете на говеждо месо и отидете на оформления, кликнете върху android_main.xml за да получите XML файла на приложението.

  • Премахнете TextView и го заменете с LinearLayout и добавете бутони. Добавете съответния код.
<LinearLayout android: ориентация= 'вертикално' android: layout_width= 'match_parent' android: layout_height= 'wrap_content' android: layout_centerVertical= 'вярно' инструменти: игнорира= 'Липсващи ограничения'><Бутон android:документ за самоличност= '@ + id / buttonStart' android:текст= 'Стартиране на услугата' android: layout_width= 'wrap_content' android: layout_height= 'match_parent'/><Бутон android:документ за самоличност= '@ + id / buttonStop' android:текст= 'Спиране на услугата' android: layout_width= 'wrap_content' android: layout_height= 'match_parent'/>LinearLayout>
  • След като направите това, върнете се към Основна дейност клас и добавете съответния код, за да свържете XML файла и MyServiceClass.
пакет com.example.newproject import androidx.appcompat.app.AppCompatActivity публичен клас MainActivity разширява AppCompatActivity реализира View.OnClickListener {частен бутон старт, спиране @Override защитена пустота onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceSouti) setConVonTlayStatei) .activity_main) start = (Button) findViewById (R.id.buttonStart) stop = (Button) findViewById (R.id.buttonStop) start.setOnClickListener (this) stop.setOnClickListener (this)} @Override public void onClick (View view ) {if (view == start) {startService (new Intent (this, MyServiceClass.class))} else if (view == stop) {stopService (new Intent (this, MyServiceClass.class))}}}

Стъпка 4

След като приключите с свързването на класовете, нека стартираме кода.

Забележка: Добавете името на класа на услугата във файла AndroidManifiest.xml.

След това нека пуснем кода.

След като стартирате услугата, тя ще работи във фонов режим, дори ако се отвори друго приложение. Можете да стартирате или спрете услугата, като кликнете върху бутоните.

Това е проста демонстрация, в която сте се научили как да работите с Android Services.

Така че с това стигнахме до края на тази статия за „Урок за услуги за Android“.Надявам се да сте наясно с темите, които са разгледани в този блог.

След като преминахте нашия блог с уроци за Android Services, можете да разгледате Edureka’s за да започнете бързо обучението си.

Имате ли въпроси? Не забравяйте да ги споменете в коментарите на този блог „Урок за Android Services“. Ще се свържем с вас.