当前位置:   article > 正文

通过包名打开主Activity_android 启动无主activity应用用包名

android 启动无主activity应用用包名

        当一个app中有多个Activity时,要通过包名+第一个Activity的名称来开启app,涉及到顺序问题,(如果主页面在xml文件注册时不按顺序注册)则通过以下代码开启的第0个Activity不是主Activity(即主Activity注册时不是第一个)


参数app是手机上所有app的集合,包含名称,包名等

Intent intent=new Intent();
        PackageManager pm=getPackageManager();
        String pa=app.getPackagename();
        try {
            PackageInfo info=pm.getPackageInfo(pa, PackageManager.GET_ACTIVITIES);
            ActivityInfo activities[]=info.activities;
            if(activities!=null&&activities.length>0){
                ActivityInfo activityInfo=activities[0];
                String name=activityInfo.name;
                intent.setClassName(pa, name);
                startActivity(intent);
            }
        } catch (NameNotFoundException e) {
            e.printStackTrace();
        }

解决办法:

        PackageManager pm=getPackageManager();
        Intent intent=pm.getLaunchIntentForPackage(app.getPackagename());
        startActivity(intent);

以上三行代码可以解决xml注册Activity乱序问题

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号