怎么判断栈里是否存在一个activity?大牛来帮小弟我
如何判断栈里是否存在一个activity??大牛来帮我啊
我们都知道,activity是通过一个栈来管理的,最顶上的acivity是正在显示的,最底层的activity是准备要被系统销毁的,在这个栈中可能会保存着一些“曾经显示”过的activity,那么我现在怎么来判断一个activity是否在这个栈中??希望大牛们来帮帮我,我找了网上的好多资料,都没有这方面的资料
------解决方案--------------------
这是我自己写的一个方法用来判断当前界面是否在launcher
private boolean isInLauncher() {
ActivityManager manager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
String name = manager.getRunningTasks(1).get(0).topActivity.getClassName();
if(name.equals("com.android.launcher.Launcher")){
return true;
}
return false;
}
get(0)是取当前栈的最上面的activity,你自己修改了代码遍历查找下
------解决方案--------------------
ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
ComponentName cn = am.getRunningTasks(1).get(0).topActivity;(注意加入权限)
cn.getClassName()得到当前activity
我们都知道,activity是通过一个栈来管理的,最顶上的acivity是正在显示的,最底层的activity是准备要被系统销毁的,在这个栈中可能会保存着一些“曾经显示”过的activity,那么我现在怎么来判断一个activity是否在这个栈中??希望大牛们来帮帮我,我找了网上的好多资料,都没有这方面的资料
------解决方案--------------------
这是我自己写的一个方法用来判断当前界面是否在launcher
private boolean isInLauncher() {
ActivityManager manager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
String name = manager.getRunningTasks(1).get(0).topActivity.getClassName();
if(name.equals("com.android.launcher.Launcher")){
return true;
}
return false;
}
get(0)是取当前栈的最上面的activity,你自己修改了代码遍历查找下
------解决方案--------------------
ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
ComponentName cn = am.getRunningTasks(1).get(0).topActivity;(注意加入权限)
cn.getClassName()得到当前activity