安卓实现后台静默启动Activity(非异步)

场景描述:
现在打开了Activity A,点击A的某一个控件,将执行耗时的操作,此时用户点击HOME键到桌面去了,过了一会儿,A中的耗时操作执行完了,将会启动一个新的Activity B,我们想要的效果是B在后台“静默”启动,而不是突然弹出来(如果不做特殊处理,在4.4以上会突然弹出来)。

实现思想:
安卓似乎并没有开放后台启动Activity的方法(如有还请告知),所以关键在于点击HOME键这个动作。在A中定义一个boolean类型变量isForeground,在onPause()里isForeground设为false,在onResume()里isForeground设为true,A执行完毕耗时任务之后,start B的时候,通过intent把isForeground传递给B,B在onCreate()的时候,根据isForeground来决定是否执行 moveTaskToBack(true);

原文及代码在此:
http://timnew.me/blog/2013/12/19/start-acitivity-in-background-on-android-4-4-kitkat/

你可能感兴趣的:(Android)