激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Android - Android中使用IntentService創建后臺服務實例

Android中使用IntentService創建后臺服務實例

2021-03-02 15:54冰凍魚 Android

這篇文章主要介紹了Android中使用IntentService創建后臺服務實例,IntentService提供了在單個后臺線程運行操作的簡單結構,需要的朋友可以參考下

IntentService提供了在單個后臺線程運行操作的簡單結構。這允許它操作耗時操作,而不影響UI響應。同樣,IntentService也不影響UI生命周期事件,所以,它在某些可能關閉AsyncTask的情況下,仍會繼續運行(實測在Activity的onDestory里寫AsyncTask無法運行)。

IntentService有如下限制:

1.它不能直接影響UI。要把結果反映給UI,需要發給Activity
2.工作請求會順序運行。如果一個操作未結束,后面發送的操作必須等它結束(單線程)
3.IntentService里運行的操作無法被中斷

然而,在大多數情況下,IntentService是簡單后臺任務的首選方式。

本節展示了如何創建IntentService的子類,如何創建onHandleIntent()回調,如何在AndroidManifest.xml聲明IntentService。

創建IntentService

定義一個IntentService的子類,覆蓋onHandleIntent()方法:

 

復制代碼 代碼如下:

public class RSSPullService extends IntentService {
    @Override
    protected void onHandleIntent(Intent workIntent) {
        // Gets data from the incoming Intent
        String dataString = workIntent.getDataString();
        ...
        // Do work here, based on the contents of dataString
        ...
    }
}

 

提示:其他Service正常的回調,像 onStartCommand()在IntentService里會自動調用。在IntentService里,應該避免覆蓋這些回調。

在AndroidManifest.xml里定義IntentService

IntentService也是Service),需要在AndroidManifest.xml里注冊。

 

復制代碼 代碼如下:

<application
        android:icon="@drawable/icon"
        android:label="@string/app_name">
        ...
        <!--
            Because android:exported is set to "false",
            the service is only available to this app.
        -->
        <service
            android:name=".RSSPullService"
            android:exported="false"/>
        ...
    <application/>

 

android:name屬性指定了IntentService的類名。

注意:&ltservice&gt節點不能包含intent filter。發送工作請求的Activity使用明確的Intent,會指定哪個IntentService。這也意味著,只有同一個app里的組件,或者另一個有相同user id的應用才能訪問IntentService。

現在你有了基礎的IntentService類,可以用Intent對象發送工作請求。

創建發送工作請求傳給IntentService

創建一個明確的Intent,添加需要的數據,調用startService()發送給IntentService

 

復制代碼 代碼如下:
/*
 * Creates a new Intent to start the RSSPullService
 * IntentService. Passes a URI in the
 * Intent's "data" field.
 */
mServiceIntent = new Intent(getActivity(), RSSPullService.class);
mServiceIntent.setData(Uri.parse(dataUrl));
//Call startService()
// Starts the IntentService
getActivity().startService(mServiceIntent);

 

提示:可以在Activity or Fragment的任意位置發送工作請求。如果你需要先取到用戶輸入,你可以在點擊事件或類似手勢的回調方法里發送工作請求。

一旦調用了startService(),IntentService會在onHandleIntent()工作,完了結束自身。

下一步是報告結果給原來的Activity或Fragment,下節講如何用BroadcastReceiver實現。請參考此文:http://www.zmynmublwnt.cn/article/143510.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美视频首页 | 成人在线视频精品 | 成人aaaa免费全部观看 | 国产午夜精品久久久久久免费视 | 国产精品久久久久久久久久三级 | 日韩av片在线播放 | 看片一区| 55夜色66夜色国产精品视频 | 欧美18—19sex性护士中国 | 久久成人福利 | 国产精品视频在 | 欧美一级毛片欧美一级成人毛片 | 91毛片网站| 久久国产经典 | 精品在线视频播放 | 中国av一级片 | 欧美日韩手机在线观看 | 久草在线观看资源 | 国产69精品久久久久孕妇黑 | 国产一区二区精品在线观看 | av不卡毛片 | 亚洲少妇诱惑 | 国产精品国产成人国产三级 | hd极品free性xxx护士人 | 一级在线视频 | 激情九九 | 日本免费aaa观看 | 曰韩一级片 | 国内免费视频成人精品 | 九九热视频在线免费观看 | 国产午夜精品一区二区三区不卡 | 久久免费视频一区二区三区 | 黄色男女视频 | 国产福利不卡一区二区三区 | 国产91小视频在线观看 | 亚洲日韩中文字幕一区 | 欧美成人国产va精品日本一级 | 日韩精品中文字幕在线播放 | 成人做爰高潮片免费视频美国 | 久久久国产精品电影 | 亚洲成人国产 |