开启多进程可以保证你的app有更多的内存,开启方法如下:


<service
 
     
 android 
 :name= 
 "service.MyLockService"
 
     
 android 
 :process= 
 ":MyLockService"  
 />
 
 
 
 <service
 
     
 android 
 :name= 
 "service.FuckingService"
 
     
 android 
 :label= 
 "@style/AppTheme"
 
     
 android 
 :process= 
 ":FuckingService"  
 />



开启了两个服务,分别是MyLockService和FuckingService,在application的oncreate方法中开启这两个服务



new Intent( 
 this, MyLockService. 
 class) 
 ;
 
 this.startService(service) 
 ;
 
 
Intent service1 =  
 new Intent( 
 this, FuckingService. 
 class) 
 ;
 
 this.startService(service1) 
 ;



接下来安装在手机上,开启app,在手机的“设置”中可以看到有两个进程出现了




注意:每开启一个新的进程APP的application就会走一次oncreate方法


这就意味着你有两个子进程时,你的application就会走三次ocreate方法,这会导致你appliacation多次调用某些初始化方法,没有必要,因此需要你根据当前开启的进程名来判断是否需要执行初始化操作。。判断进程名的方法为:


private String  
 getCurrentProcessName() { 
 
     String currentProcName =  
 "" 
 ;
 
     int pid = android.os.Process. 
 myPid() 
 ;
 
     ActivityManager manager = (ActivityManager)  
 this.getSystemService(Context. 
 ACTIVITY_SERVICE) 
 ;
 
     for (ActivityManager.RunningAppProcessInfo processInfo : manager.getRunningAppProcesses()) { 
 
         
 if (processInfo. 
 pid == pid) { 
 
             currentProcName = processInfo. 
 processName 
 ;
 
             break;
 
         } 
 
     } 
 
     
 return currentProcName 
 ;
}




拿到进程名就可以直接根据进程名判断是否需要执行初始化方法了。。。