赞
踩
当一个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乱序问题
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。