我一直以为只要在 application的theme下设置background就好了,(同类型解决方法还有设置为透明)
但是今天在实际测试中发现,
在oppo m37a 上是有效果的(api 22)
但是在红米4 上发现是没有效果的!(api23)
我尝试打开红米4上多款应用发现:
瞬间打开且没有白屏
高德地图
掘金
segmentfault
手机淘宝
印象笔记
等。。。
有白屏
知乎日报
扇贝单词
人民日报
摩拜单车
没有白屏,但是点击icon 会延迟一会才打开
简书
UC浏览器
支付宝
如果是白屏或者是“延迟打开”,我觉得可以办到
那要怎样才能做到segmentfault ,手机淘宝这样呢?
启动第一个activity,这个activity 只是为了作为背景显示,把一些初始化的工作放到第2个activity中?
这样的话做法好奇怪啊?应该有什么更直接的方案吧?
background
을 설정하려면windowBackground
도 구현해야 합니다. 이 지점에 도달하면 애플리케이션이나 주요 활동도 수행될 가능성이 높습니다. 많은 메인 스레드 작업.시작을 투명하게 설정하고 테마 파일에 다음 코드를 추가하세요
으아악<style name="welcomeTheme" parent="AppTheme">
으아악테마를 설정하고 여기에 인용하세요
으아악<activity
애플리케이션에서 너무 많은 작업을 수행해야 하는 경우 다중 프로세스 모드를 통해 프로세스별로 시작할 수 있는 간단한 방법이 있습니다. 보조 프로세스는 기본 프로세스가 시작될 때 화면 보호기 인터페이스를 시작하고 메인 프로세스가 초기화를 완료하면 보조 프로세스가 종료되고 메인 프로세스 인터페이스가 시작됩니다. 이렇게 하면 애플리케이션의 과도한 초기화로 인해 초기 시작이 너무 느려지는 문제를 피할 수 있습니다.
먼저 흰색 화면이 나타나는 이유를 확인한 후 자신의 비즈니스 코드에 맞게 수정하세요.
바탕화면 아이콘을 클릭하면 해당 앱의 첫 번째 액티비티가 열리게 됩니다. 생성될 애플리케이션일 수 있습니다. 첫 번째 페이지는 Activity의 onResume이 실행된 후에 실제로 표시된다는 점을 알 수 있습니다. 그 전에는 흰색 화면 시간으로 이해할 수 있습니다(테마를 수정하기 위해 검정색 기술을 사용하는 것은 고려되지 않음). , 흰색 화면을 줄인다는 것은 이러한 프로세스에 소요되는 시간을 줄이는 것을 의미합니다. 간단하고 조잡한 방법은 이러한 종속 패키지의 초기화를 스플래시 페이지에 넣고 onResume 이후에 실행하는 것입니다.
너무 게으른 나머지 실행하지 않습니다. 입력하고 싶지 않습니다...
실제로 다양한 문제가 발생하면 직접 해결해야 합니다. 예를 들어 초기화에만 수백 밀리초가 걸리므로 더 실용적인 판단을 추가할 수 있습니다. 예를 들어 스플래시 페이지가 없다면 초기화를 홈 페이지에 넣은 뒤 초기화 후 다른 작업을 수행하면 됩니다. 또 다른 예를 들어 초기화를 반복하면 초기화 여부를 표시하는 정적 변수를 추가할 수 있습니다.
요약은 최적화를 위해 첫 번째 Activity의 OnResume 이전에 어떤 위치가 시간을 차지하는지 찾는 것입니다(이미지 구문 분석, 레이아웃 렌더링 등일 수도 있음...)