今天所说的这种需求想必大家都会遇到过,就是推送通知过来了,你点击通知跳转到通知页面,点击返回(或者back键)跳回应用之前显示的页面,但这是应用程序没有退出销毁,如果应用程序退出,或者不存在于活动栈中呢?这时应该点击通知页面的返回键应如何跳转呢?就这个问题我根据自身开发的经历向大家说明,如有不妥请大家批评纠正...
思路:如果应用没有退出销毁,点击返回跳转到应用通知之前的显示页面,应用程序退出,先启动应用,将通知数据传递到通知显示的activity,查看通知完毕,点击返回键(back键),回到主应用页面。
首先判断应用是否退出销毁下面的代码可以判断
ActivityManager manager = (ActivityManager) context.getSystemService(context.ACTIVITY_SERVICE);
List<RunningTaskInfo> runningTasks = manager .getRunningTasks(manager.getRunningAppProcesses().size()); //获取当前正在运行的应用任务集合
private boolean isOpenMain(List<RunningTaskInfo> runningTasks) {
for(int i=0;i<runningTasks.size();i++){
RunningTaskInfo taskInfo = runningTasks.get(i);
ComponentName name = taskInfo.baseActivity; //
String aname = name.getClassName();
android.util.Log.v("baseActivity", ""+aname);//启动当前任务的activity
if(aname.contains("com......activity")){ //应用包名
return true;
}
}
return false;
}
下面就是通过log打出运行的主activity名称示例图
如果上面有你的activity 那么说明它正在运行当中,不一定在前台也可以在后台,但没有被销毁。
反之就说明没有运行。