Xizmatni Android xizmatida ServiceConnection bilan bog'lashni to'xtatishning eng yaxshi usuli?

Mening xizmatimdagi ServiceConnection bilan bog'langan xizmatim bor. Faoliyat hosil qilinsa va BroadcastReceiver sinfida to'xtab qolsa, xizmat juda yaxshi ishlaydi. Endi men xizmat muddatini bergandan keyin to'xtatishni xohlayman. Mening xizmatimdagi TimerTask-ni sinab, lekin to'g'ri ishlamayapti.

Har qanday taklif yoki echim xush ko'riladi.

Rahmat.

1

2 javoblar

Timer shuningdek, mustaqil Thread.so sifatida ko'rib chiqiladi. Xizmatni to'xtatmoqchi bo'lganingizda kontekst o'zgarishi mumkin. Mening biznesim Pid of Current Service xizmatiga o'tadi va Pid yordamida xizmatni o'ldiradi. android: process attribute androidmanifest.xml da ko'rsatiladi.

Jarayon jarayoni = Runtime.getRuntime (). Exec ("kill pid"); InputStream - = process.getInputStream ();

bu kod yaxshi ishlaydi. bir marta harakat qilib ko'ring

0
qo'shib qo'ydi

Ilovangizda statikani e'lon qilish:

static Intent local_Intent;

Ilovani yaratish xizmati uchun yangi niyat tayinlang va local_Intent-ga bog'laning:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    local_Intent = new Intent(this, yourAppService.class);
}

Local_Intent uchun tayinlash local_Intent statik bo'lgani uchun eslab qolindi Xizmatni ilovangizda ishga tushirishni xohlasangiz

 startService(local_Intent);

Siz ilovangizda xizmatni to'xtatishni xohlasangiz

 stopService(local_Intent);
0
qo'shib qo'ydi