配置activity-alias别名,更改app图标和名字
2016-06-30 18:00
393 查看
1、通过配置activity-alias别名,将多个别名指向同一个Activity,该Activity是包含了android.intent.action.MAIN和android.intent.category.LAUNCHER的。
2、在AndroidManifest.xml文件中,把其他的activity-alias设置为 android:enabled=”true”,并设置不同的label和icon。
3、在代码中可以设置哪些Activity或者activity-alias是否可用。
主要部分代码如下:
<activity android:configChanges=”locale|keyboard|keyboardHidden|orientation|screenLayout|screenSize” android:excludeFromRecents=”true” android:exported=”true” android:hardwareAccelerated=”true” android:icon=”@drawable/transparent” android:label=”@string/appname_supersu”
android:launchMode=”singleTask” android:name=”.MainActivity” android:noHistory=”false” android:theme=”@android:style/Theme.Translucent”>
<intent-filter>
<action android:name=”android.intent.action.MAIN”/>
</intent-filter>
</activity>
<activity-alias android:enabled=”true” android:icon=”@drawable/ic_launcher_emblem” android:label=”@string/appname_supersu” android:name=”.MainActivity-Emblem” android:targetActivity=”.MainActivity”>
<intent-filter>
<action android:name=”android.intent.action.MAIN”/>
<category android:name=”android.intent.category.LAUNCHER”/>
</intent-filter>
</activity-alias>
<activity-alias android:enabled=”false” android:icon=”@drawable/ic_launcher_superandy” android:label=”@string/appname_supersu” android:name=”.MainActivity-SuperAndy” android:targetActivity=”.MainActivity”>
<intent-filter>
<action android:name=”android.intent.action.MAIN”/>
<category android:name=”android.intent.category.LAUNCHER”/>
</intent-filter>
</activity-alias>
##JAVA代码
Context ctx = getApplicationContext();
ActivityManager am = (ActivityManager) ctx
.getSystemService(Activity.ACTIVITY_SERVICE);
System.out.println(getComponentName());
if (“com.ilovn.app.pictureprocess.TestAlias”.equals(getComponentName()
.getClassName())) {
pm.setComponentEnabledSetting(getComponentName(),
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
pm.setComponentEnabledSetting(new ComponentName(getBaseContext(),
“com.ilovn.app.pictureprocess.SplashActivity”),
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
} else {
pm.setComponentEnabledSetting(getComponentName(),
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
pm.setComponentEnabledSetting(new ComponentName(getBaseContext(),
“com.ilovn.app.pictureprocess.TestAlias”),
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
}
转载自:点击打开链接
2、在AndroidManifest.xml文件中,把其他的activity-alias设置为 android:enabled=”true”,并设置不同的label和icon。
3、在代码中可以设置哪些Activity或者activity-alias是否可用。
主要部分代码如下:
<activity android:configChanges=”locale|keyboard|keyboardHidden|orientation|screenLayout|screenSize” android:excludeFromRecents=”true” android:exported=”true” android:hardwareAccelerated=”true” android:icon=”@drawable/transparent” android:label=”@string/appname_supersu”
android:launchMode=”singleTask” android:name=”.MainActivity” android:noHistory=”false” android:theme=”@android:style/Theme.Translucent”>
<intent-filter>
<action android:name=”android.intent.action.MAIN”/>
</intent-filter>
</activity>
<activity-alias android:enabled=”true” android:icon=”@drawable/ic_launcher_emblem” android:label=”@string/appname_supersu” android:name=”.MainActivity-Emblem” android:targetActivity=”.MainActivity”>
<intent-filter>
<action android:name=”android.intent.action.MAIN”/>
<category android:name=”android.intent.category.LAUNCHER”/>
</intent-filter>
</activity-alias>
<activity-alias android:enabled=”false” android:icon=”@drawable/ic_launcher_superandy” android:label=”@string/appname_supersu” android:name=”.MainActivity-SuperAndy” android:targetActivity=”.MainActivity”>
<intent-filter>
<action android:name=”android.intent.action.MAIN”/>
<category android:name=”android.intent.category.LAUNCHER”/>
</intent-filter>
</activity-alias>
##JAVA代码
Context ctx = getApplicationContext();
ActivityManager am = (ActivityManager) ctx
.getSystemService(Activity.ACTIVITY_SERVICE);
System.out.println(getComponentName());
if (“com.ilovn.app.pictureprocess.TestAlias”.equals(getComponentName()
.getClassName())) {
pm.setComponentEnabledSetting(getComponentName(),
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
pm.setComponentEnabledSetting(new ComponentName(getBaseContext(),
“com.ilovn.app.pictureprocess.SplashActivity”),
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
} else {
pm.setComponentEnabledSetting(getComponentName(),
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
pm.setComponentEnabledSetting(new ComponentName(getBaseContext(),
“com.ilovn.app.pictureprocess.TestAlias”),
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
}
转载自:点击打开链接
相关文章推荐
- 利用 LeakCanary 来检查 Android 内存泄漏
- android 使用Canvas画箭头
- RxBus使用
- Swift语言精要 - 浅谈代理模式(Delegate)
- Swift语言精要 - 浅谈代理模式(Delegate)
- IOS 永久保存相册或相机拍照的图片
- Android MVP模式的详情以及和MVC模式的区别
- Android 应用监听后台切换前台的方法
- android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项
- CodeForces 558A Lala Land and Apple Trees
- Android进阶(二十二)设置TextView文字水平垂直居中
- Android进阶(二十二)设置TextView文字水平垂直居中
- Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'
- 9-12插入节点appendChild()
- Androidstudio中gradle配置和使用
- iOS开发调试技巧(一)
- iOS 在App内返回到指定页面
- Android JNI简介
- Android 机顶盒开发过程中Listview指定item获取焦点
- App如何优化?