Andriod Service與Thread的區(qū)別介紹
首先,我們需要明確Service是運行在主線程的,不能有耗時操作,這樣,在Service中處理耗時操作的時候,我們依然需要使用線程來處理。
既然在Service里也要創(chuàng)建一個子線程,那為什么不直接在Activity里創(chuàng)建呢?
這是因為Activity很難對Thread進(jìn)行控制,當(dāng)Activity被銷毀之后,就沒有任何其它的辦法可以再重新獲取到之前創(chuàng)建的子線程的實例。而且在一個Activity中創(chuàng)建的子線程,另一個Activity無法對其進(jìn)行操作。但是Service就不同了,所有的Activity都可以與Service進(jìn)行關(guān)聯(lián),然后可以很方便地操作其中的方法,即使Activity被銷毀了,之后只要重新與Service建立關(guān)聯(lián),就又能夠獲取到原有的Service中Binder的實例。因此,使用Service來處理后臺任務(wù),Activity就可以放心地finish,完全不需要擔(dān)心無法對后臺任務(wù)進(jìn)行控制的情況。
標(biāo)準(zhǔn)Service的寫法:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
new Thread(new Runnable() {
@Override
public void run() {
// 開始執(zhí)行后臺任務(wù)
}
}).start();
return super.onStartCommand(intent, flags, startId);
}
class MyBinder extends Binder {
public void startDownload() {
new Thread(new Runnable() {
@Override
public void run() {
// 執(zhí)行具體的下載任務(wù)
}
}).start();
}
}
以上所述是小編給大家介紹的Andriod Service與Thread的區(qū)別介紹,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
RecyclerView仿應(yīng)用列表實現(xiàn)網(wǎng)格布局
這篇文章主要為大家詳細(xì)介紹了RecyclerView仿應(yīng)用列表實現(xiàn)網(wǎng)格布局,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-09-09
Mac Android Studio 3.0 Terminal 中文亂碼問題處理
android使用RxJava實現(xiàn)預(yù)加載
Android PraiseTextView實現(xiàn)朋友圈點贊功能
解決Android popupWindow設(shè)置背景透明度無效的問題

