Android 点击图标程序重新启动

本文介绍了一种解决程序打包后每次点击图标都会重新启动应用的问题的方法。通过调整启动模式并添加特定代码到BaseActivity的onCreate方法中可以有效避免重复启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

遇到了一个很诡异的问题,程序打包好后,运行,每次点击图标都会重新启动应用,

然而重任务管理器中直接启动程序,又不会启动应用。

网上找了很久,只找到了解决方案, 并没有找到问题出现的原因,现记录下来,有同学在遇到相同问题的时候,可以看一下

1.首先去掉启动页的启动模式 也就是 LaunchMode 

2.在 BaseActivity 的 onCreate 中,添加如下代码


protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) { 
        finish(); 
        return; 
    } 
    init();
}

这样就能解决问题了,具体原因我也不知道,哈哈。 

有知道原因的同学,请留个言,说明一下,感激不尽!!!

### 修改 Android 应用程序图标的教程 #### 使用 Android Studio 修改静态图标 为了修改 Android 应用程序的默认图标,开发者通常会在项目资源文件夹内替换现有的图像文件。具体操作如下: 1. 打开项目的 `res/drawable` 文件夹,在这里找到名为 `ic_launcher_foreground.xml` 和 `ic_launcher_background.xml` 的 XML 文件,这两个文件定义了应用启动器图标的前景和背景[^1]。 2. 替换这些 XML 文件所引用的实际图片资源(通常是 PNG 格式的图形),确保新上传的图片遵循 Material Design 准则规定的尺寸和其他设计指南。 3. 更新完毕后重新编译应用程序即可看到新的图标效果。 ```xml <!-- ic_launcher_foreground.xml --> <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="96dp" android:height="96dp" android:tint="#FFFFFF"> <!-- 图标的具体路径 --> </vector> ``` #### 动态改变运行时的应用图标 对于希望在不重启设备的情况下即时更新图标的场景,则可以通过编程方式调用 API 来实现这一目标。此过程涉及到了对 Android 清单文件 (`AndroidManifest.xml`) 中 `<application>` 节点属性的操作以及利用特定方法来通知系统刷新显示的内容[^2]。 - 设置初始图标:通过编辑 `AndroidManifest.xml` 文件中的 `icon` 属性指定默认使用的图标资源 ID。 - 实现动态更换逻辑:当满足一定条件时(比如接收到服务器推送的通知),可以在 Activity 或 Service 类里执行以下代码片段完成实时变更: ```java // Java Code Example to Change Icon at Runtime Intent intent = new Intent(); intent.setAction(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); ComponentName componentName = getComponentName(); PackageManager packageManager = getApplicationContext().getPackageManager(); // Set the new icon resource here, e.g., R.mipmap.new_icon packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); componentName = new ComponentName(this, "com.example.NewIconActivity"); packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); ``` 上述例子展示了如何禁用当前活动组件并启用另一个具有不同图标的替代项,从而达到视觉上的变化目的[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值