android - 关于判断activity是否存在
天蓬老师
天蓬老师 2017-04-17 17:56:38
[Android讨论组]

各位,我用这个方法在
判断activity是否存在,
我把红色的的类名改成KoBe,但是还是显示这个activity存在;但是你看

KoBe是不存在这个包里的,请问这是咋回事????

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(3)
PHP中文网
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中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号