android的通知栏消息点击事件如果是打开一个activity时,我们要考虑两种情况:
- 应用正在前台运行。
- 应用已退出。
如果是第一种情况那么就好处理了,直接为Intent设置flag为FLAG_ACTIVITY_NEW_TASK,然后调用context.startActivity方法就行了。flag不是必须的,什么情况下需要设置flag?当在广播接收器中跳转到activity时,当在service中转到activity时。
对于第二种情况,我参照了很多app的做法,现总结为以下两种:
- 点击通知栏消息打开activity按下返回键后判断app是否启动,如果没有启动就要启动app;
- 点击通知栏消息时判断app是否正在前台运行,否则先启动app再打开activity,参数通过Intent一层一层往下传递。
需要用到几个方法:获取应用的运行状态,判断应用进程是否在运行,判断某个activity是否存在任务栈里面。
判断某个服务是否正在运行,这个不重要,可能其它地方用到就先贴出来了。 ==
/**
* 判断某个servic