作者:巡山小妖 | 来源:互联网 | 2023-02-05 14:12
Android动态修改应用图标-最近遇到一个功能模块化管理APP,需要根据不同的业务动态替换应用图标和启动页,搜了大量资料,总结用别名activity-alias标签比较实用简单
最近遇到一个功能模块化管理APP, 需要根据不同的业务动态替换应用图标和启动页,搜了大量资料,总结用"别名"activity-alias标签比较实用 简单
效果视频 http://m.v.qq.com/play.html?cid=&vid=d32368cv2hl&vuid24=MwW8NfoGvVm7RsR2bKr7pw%3D%3D&url_from=share&second_share=0&share_from=wxf
直接上代码
布局代码
AndroidManifest.xml 代码
MainActivity 代码
public class Main18Activity extends AppCompatActivity {
private ComponentName mComponentName1;
private ComponentName mComponentName2;
private ComponentName mComponentNameDefault3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main18);
String packageName = getPackageName();
mComponentName1 = new ComponentName(this, packageName + ".MainActivity");
mComponentName2 = new ComponentName(this, packageName + ".Main2Activity");
mComponentNameDefault3 = new ComponentName(this, packageName + ".Main3Activity");
}
private void enableComponent(ComponentName componentName) {
getPackageManager().setComponentEnabledSetting(componentName,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
}
private void disableComponent(ComponentName componentName) {
getPackageManager().setComponentEnabledSetting(componentName,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
}
public void monClick(View view) {
enableComponent(mComponentName1);
disableComponent(mComponentName2);
disableComponent(mComponentNameDefault3);
}
public void monClickq(View view) {
enableComponent(mComponentName1);
disableComponent(mComponentName2);
disableComponent(mComponentNameDefault3);
}
public void monClickw(View view) {
disableComponent(mComponentName1);
enableComponent(mComponentName2);
disableComponent(mComponentNameDefault3);
}
public void monClicke(View view) {
disableComponent(mComponentName1);
disableComponent(mComponentName2);
enableComponent(mComponentNameDefault3);
}
}
注意: AndroidManifest.xml android:enabled="false" false表示只会显示一个图标 true表示显示同时存在
现在就可以根绝不同业务活动等需求调用不同的 启动页 APP名字 图标