扫码关注官方订阅号
各位,我用这个方法在判断activity是否存在,我把红色的的类名改成KoBe,但是还是显示这个activity存在;但是你看KoBe是不存在这个包里的,请问这是咋回事????
欢迎选择我的课程,让我们一起见证您的进步~~
try { startActivity(new Intent(..)); } catch (ActivityNotFoundException e) { Toast.makeText(this, "Not installed.", LENGTH_SHORT).show(); }
用这个方法最简单粗暴
ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); List<RunningTaskInfo> list = am.getRunningTasks(100); boolean isAppRunning = false; String MY_PKG_NAME = "xx.xx.xx"; for (RunningTaskInfo info : list) { if (info.topActivity.getPackageName().equals(MY_PKG_NAME) || info.baseActivity.getPackageName().equals(MY_PKG_NAME)) { isAppRunning = true; break; } }
可以使用ActivityManager判断
resolveActivity只是简单的返回setClassName设置的值没有进行类是否存在的校验。如果是同一个进程内,建议使用Class.forName(className)来检测类是否存在
public Intent setClassName(String packageName, String className) { mComponent = new ComponentName(packageName, className); return this; } public ComponentName resolveActivity(PackageManager pm) { if (mComponent != null) { return mComponent; } ... }
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
用这个方法最简单粗暴
可以使用ActivityManager判断
resolveActivity只是简单的返回setClassName设置的值
没有进行类是否存在的校验。
如果是同一个进程内,建议使用Class.forName(className)来检测类是否存在