`
chroya
  • 浏览: 656669 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

判断一个activity是否存在于系统中

 
阅读更多

    已知包名和类名,如何判断这个activity是否在系统中存在呢?很简单,通过intent就行。

        Intent intent = new Intent();
        intent.setClassName("包名", "类名");      
        if(getPackageManager().resolveActivity(intent, 0) == null) {
        	//说明系统中不存在这个activity
        }
0
0
分享到:
评论
7 楼 ksk0418lsl 2011-07-29  
经测试可以,但是要注意packageName 可以同伙 getPackageName()得到,指的是apk的包路径,className 用类的全路径也就是 xx.xx.xx.类名。
6 楼 hsx9566 2010-09-08  
这样可以了,谢谢。
5 楼 chroya 2010-09-08  
hsx9566 写道
楼主你那个项目试下
public class test extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main); 
        Intent i=new Intent();
        i.setClassName("aa", "bb");
if(i.resolveActivity(getPackageManager()) == null) {  
System.out.println("not exist");
}
if(i.resolveActivity(getPackageManager()) != null) {  
System.out.println("exist");
}
    }
}

这样的结果会打印出exist。
我正需要判断这个,你试成功了,给我个回复。

不好意思,是我的失误,已经纠正了。感谢hsx9566!
4 楼 hsx9566 2010-09-08  
楼主你那个项目试下
public class test extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main); 
        Intent i=new Intent();
        i.setClassName("aa", "bb");
if(i.resolveActivity(getPackageManager()) == null) {  
System.out.println("not exist");
}
if(i.resolveActivity(getPackageManager()) != null) {  
System.out.println("exist");
}
    }
}

这样的结果会打印出exist。
我正需要判断这个,你试成功了,给我个回复。
3 楼 hsx9566 2010-09-08  
我在2.1系统中试过,包名类名分别写aa,bb。
结果
if(intent.resolveActivity(getPackageManager()) == null) {  
   
}
里的语句是没出现。
倒是
if(intent.resolveActivity(getPackageManager()) != null) {  
   
}
里的语句能打印出。
不知怎么回事,请教下。
2 楼 chroya 2010-09-08  
hsx9566 写道
按你说的:
Intent intent = new Intent();  
intent.setClassName("包名", "类名"); 
      
intent.resolveActivity(getPackageManager()) 得到的都是“ComponentInfo{包名/类名}"

不管存不存在都不为null

不是的,不存在的话,会返回null的
1 楼 hsx9566 2010-09-08  
按你说的:
Intent intent = new Intent();  
intent.setClassName("包名", "类名"); 
      
intent.resolveActivity(getPackageManager()) 得到的都是“ComponentInfo{包名/类名}"

不管存不存在都不为null

相关推荐

    Android开发人员不得不收集的代码

    isActivityExistsInStack : 判断 Activity 是否存在栈中 finishActivity : 结束 Activity finishToActivity : 结束到指定 Activity finishOtherActivities : 结束所有其他类型的 Activity finishAllActivities : ...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    Sqlite 一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中 W3C 万维网联盟,创建于1994年,是Web技术领域最具权威和影响力的国际中立性技术标准机构。主要的工作是发展 Web 规范,...

    JAVA互联网拨号源码-android-toolkit:Android开发工具包

    JAVA互联网拨号源码 Android开发工具箱 Gradle compile ...How to use // init ...判断Activity是否存在 ...启动多个Activity ...判断Activity是否存在栈中 finishActivity : 结束Activity finishToActivity : 结束到指定

    JAVA互联网拨号源码-pyx_utils:开发常用工具类

    JAVA互联网拨号源码 pyx_utils 安卓开发常用工具类 Download compile ...How to use Utils.init(application);...Activity ...activity栈管理 ...判断 Activity ...是否存在栈中 finishActivity : 结束 Activit

    ios开发记录

    //判断两个字符串是否相等,不能使用==,使用等号是判断两个对象是否是一个对象,也就是是否是一个内存地址。 //判断字符串的内容是否相同应该使用nsstring的isEqualToString:方法 //在低版本的时候,如果直接点击...

    Android 开发技巧

    4.13.1、显示到一个布局中 127 4.14、TOASTE 128 4.14.1、短时间显示 128 4.14.2、长时间显示 128 4.15、对话框 128 4.15.1、简单的对话框: 128 4.15.2、包含两个按钮的对话框 128 4.15.3、三个按钮的提示框 129 ...

    Android开发资料合集-World版!

    4.13.1、显示到一个布局中 127 4.14、TOASTE 128 4.14.1、短时间显示 128 4.14.2、长时间显示 128 4.15、对话框 128 4.15.1、简单的对话框: 128 4.15.2、包含两个按钮的对话框 128 4.15.3、三个按钮的提示框 129 ...

    JAVA互联网拨号源码-EcarUtil:EcarUtil

    判断是否存在Activity launchActivity : 打开Activity getLauncherActivity: 获取入口activity App相关→AppUtils.java→Demo isInstallApp : 判断App是否安装 installApp : 安装App(支持6.0) installAppSilent : ...

    嵌入式系统/ARM技术中的基于分带谱熵的语音激活检测算法的设计与实现

    采用一定的信号处理技术来检测信号中是否包含语音信号,并从背景噪声中找出每一段语音的开始和终止,以明确找出语音信号存在的范围,这就是语音激活检测VAD(Voice Activity Detection)。该技术目前被广泛应用在...

    LMFrameWork:一个安卓框架

    各种判断(当前网络状态,SD卡是否存在) b.网络请求数据(POST,GET) c.数据解析(JSON)---用的阿里的fastjson解析工具,直接json转换成模型bean d.SD卡判断(容量是否足够,SD卡,手机内存,应用内存剩余多少) e....

Global site tag (gtag.js) - Google Analytics