android 預加載進程的實現(xiàn)方法
一.背景
做閱讀器獨立進程時,打開閱讀器閱讀頁面所在的Activity
,會出現(xiàn)白屏或黑屏
也就是說從一個進程activity
跳轉另一個進程的activity
,會出現(xiàn)白屏或黑屏
,因為打開獨立進程會重新fork,耗時比較長,所以解決思路是
在跳轉之前,預加載進程,從而避免啟動進程的時間
選擇看不見的組件進行預加載,如Service
、廣播
二.實現(xiàn)
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ù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Android利用RecyclerView實現(xiàn)列表倒計時效果
這篇文章主要為大家詳細介紹了Android利用RecyclerView實現(xiàn)列表倒計時效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-09-09android ItemTouchHelper實現(xiàn)可拖拽和側滑的列表的示例代碼
本篇文章主要介紹了ItemTouchHelper實現(xiàn)可拖拽和側滑的列表的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02