Android拾遗首页投稿(暂停使用,暂停投稿)Android开发

android 预加载进程(页面跳转白屏或黑屏)

2016-08-03  本文已影响1452人  杰少想去流浪

现象:
第一次从一个进程的activity跳转到另一个进程的activity,会先呈现出黑屏(或白屏)的现象,然后才是第二个activity的界面。这是因为第一次跳转的时候,需要先启动另一个进程,而启动进程需要消耗一定的时间,而在这时间内会直接显示window的背景(黑色或者白色),因此会出现黑屏或者白屏的现象。
解决办法:
在跳转之前,预加载进程,从而避免启动进程的时间。如我在某个界面启动service,而该service在AndroidManifest.xml设置为想要开启的进程,这个用来预加载进程的service不需要实现什么功能,只要存在即可。

AndroidManifest.xml:

<service 
        android:name="com.eebbk.pointread.HideService" 
        android:process=":pointread"/>

HideService:

package com.eebbk.pointread;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.support.annotation.Nullable;
/**
 * Created by zhangshao on 2016/8/3. 
*
 * 只是单纯的为了预加载点读进程,无其他意义 
*/
public class HideService extends Service{   
        @Nullable  
        @Override   
        public IBinder onBind(Intent intent) {     
                return null;   
        }
}

我在要跳转到另一个进程的activity中添加开启和停止服务的方法:

/** 
* 开始预加载进程 
*/
 private void startHideService(){ 
        Intent intent = new Intent(this, HideService.class); 
        this.startService(intent);
 } 

private void stopHideService(){ 
        Intent intent = new Intent(this, HideService.class); 
        this.stopService(intent); 
}

在该activity的OnCreate()中调用:startHideService();
在该activity的OnDestroy()中调用:stopHideService();

总结
预加载并不需要非得是Service,只要是看不见的组件就行,比如用广播。

上一篇下一篇

猜你喜欢

热点阅读