Android中的应用进程可以分为两种:一种是“体验型”进程,一种是“性能型”进程。“体验型”进程即可以与用户进行交互的进程,“性能型”进程则为用户提供功能但是用户看不见界面的进程,他们之间是通过优先级进行区分的,进程中包含的组件与用户交互得越密切,优先级越高,当某些事件发生后“体验型”进程就有可能变成“性能型”进程,这时如果超过了系统的阈值,系统就会自动回收“性能型”进程。应用进行最小化后在后台运行就是将应用从“体验型”进程切换到“性能型”进程,所以可以设置这个应用的优先级为“性能型”进程的级别。这是一个理想的方法,但是效果未必理想。因为我们不知道其他的进程会不会一下子也变成了“性能型”进程,然后就超过阈值被系统回收了!
这里说一个比较好的办法:当点击最小化后可以用一个触发器组件调用Service的stopForeground方法,这样应用就可以转到后台运行,需要将其转到前台时使用startForeground方法即可,当然你最好让这个应用实现Service组件。
如果你不想那么跳转来跳转去地话这里还有个投机取巧的方法,当进程最小化后到后台运行也就是让用户看不到了,那么我们可以近似地认为它回到了主页面,所以最小化后就让其跳转到主页面,
可以如下实现:
Intent i= new Intent(Intent.ACTION_MAIN);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //如果是服务里调用,
//必须加入new task标识
i.addCategory(Intent.CATEGORY_HOME);
startActivity(i);
当然这是投机取巧的方法,不建议经常使用!