当点击通知栏通知进入app指定界面以后,按返回键的时候,咱们但愿依然停留在应用里面。html
假设:通知打开的activity和应用的其余activity在一个栈中。(activity栈???)app
这是有两种状况:code
一种是点击通知的时候,通知的应用在前台或者后台。当应用在后台的时候,通知打开activity的时候,会自动把应用带到前台。这是按返回键的时候,能够直接关闭掉当前的界面。htm
另外一种是,应用已经彻底退出,没有activity在栈中了。这是但愿回退到主页。get
如今咱们遇到的问题是:如何判断咱们的应用还有其余的界面没有关闭?it
咱们能够在当前界面关闭以前,咱们能够判断当前运行的task有多少个activity来判断怎么操做。若是当前task只要一个activity,那就在finish当前activity以前打开主页,若是有多个activity,直接关闭当前activityclass
public static int getRunningTaskActivitiesNum(Context context){ ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); return am.getRunningTasks(1).get(0).numActivities ; }