最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

android 預加載進程的實現方法

 更新時間:2024年05月15日 10:40:48   作者:s_nshine  
這篇文章主要介紹了android 預加載進程的實現方法,大家需要注意清單文件中注冊并制定 android:process 要預加載的進程,需要的朋友可以參考下

一.背景

做閱讀器獨立進程時,打開閱讀器閱讀頁面所在的Activity,會出現白屏或黑屏

也就是說從一個進程activity跳轉另一個進程的activity,會出現白屏或黑屏

,因為打開獨立進程會重新fork,耗時比較長,所以解決思路是

在跳轉之前,預加載進程,從而避免啟動進程的時間

選擇看不見的組件進行預加載,如Service、廣播

二.實現

1. 創(chuàng)建預加載服務類

public class PreloadProgressService extends Service {
    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
}

2.清單文件中注冊并制定 

android:process 要預加載的進程

<service
    android:name=".ui.service.PreloadProgressService"
    android:exported="true"
    android:process=":eink"
    />

3.開啟和停止

a.開啟預加載進程

private void startPreloadProgressService() {
    if(!ReaderUtils.isServiceStart(PreloadProgressService.class)){
        Intent intent = new Intent(requireActivity(), PreloadProgressService.class);
        requireActivity().startService(intent);
    }
}

b.停止預加載進程

private void stopPreloadProgressService(){
    if(ReaderUtils.isServiceStart(PreloadProgressService.class)){
        Intent intent = new Intent(requireActivity(), PreloadProgressService.class);
        requireActivity().stopService(intent);
    }
}

c.進程是否開啟過判斷

public static boolean isServiceStart(Class<?> serviceClass) {
    ActivityManager manager = (ActivityManager) BaseApp.mApp.getSystemService(BaseApp.mApp.ACTIVITY_SERVICE);
    for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
        if (serviceClass.getName().equals(service.service.getClassName())) {
            return true;
        }
    }
    return false;
}

到此這篇關于android 預加載進程的文章就介紹到這了,更多相關android 預加載進程內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

西乌| 平塘县| 天气| 呼图壁县| 长海县| 柯坪县| 景泰县| 赤峰市| 综艺| 西和县| 鹤庆县| 革吉县| 内江市| 新邵县| 崇义县| 手游| 南木林县| 清镇市| 昆山市| 台江县| 梅河口市| 开封县| 同心县| 顺昌县| 榕江县| 大洼县| 醴陵市| 库车县| 阿尔山市| 洪江市| 工布江达县| 招远市| 涿州市| 博兴县| 合山市| 威宁| 土默特右旗| 丹巴县| 台中市| 奉贤区| 龙口市|