设置壁纸后uni-app app重启
设置壁纸后uni-app app重启
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Mac | Ventura 13.2.1 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Mac
PC开发环境操作系统版本号:Ventura 13.2.1
HBuilderX类型:正式
HBuilderX版本号:4.76
手机系统:Android
手机系统版本号:Android 14
手机厂商:小米
手机机型:android14的模拟器和真机小米
页面类型:vue
vue版本:vue2
打包方式:离线
项目创建方式:HBuilderX
示例代码:
private void setHomeStaticWallpaper(String path, UniJSCallback callback) {
try {
Bitmap bitmap = wallpaperLogic.getBitmapFromPath(path);
if (bitmap == null) {
packageCallbakParameter(1, "图片加载失败", callback);
return;
}
wallpaperLogic.getWallpaperManager().setBitmap(bitmap);
bitmap.recycle();
packageCallbakParameter(0, "桌面壁纸设置成功", callback);
} catch (Exception e) {
e.printStackTrace();
packageCallbakParameter(1, "静态壁纸设置失败:" + e.getMessage(), callback);
}
}
操作步骤:
- 在界面上点击设置壁纸,成功后app重新启动
预期结果:
- 不重启
实际结果:
- 重启
bug描述: 设置壁纸后应用重启?uni-app开发app的主要功能,设置壁纸功能是自己写的android原生插件,uni-app调用原生插件设置壁纸。在andorid10上设置成功后不会重启,在android14上会重启。设置静态壁纸和动态壁纸都会重启。
更多关于设置壁纸后uni-app app重启的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于设置壁纸后uni-app app重启的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个Android系统兼容性问题。在Android 10及以下版本中,设置壁纸通常不会导致应用重启,但从Android 11开始,系统对壁纸设置行为进行了调整。
问题分析:
- 当调用WallpaperManager.setBitmap()时,系统壁纸服务会重新创建壁纸引擎
- Android 14加强了应用生命周期管理,壁纸设置可能被系统识别为资源密集型操作
- 系统可能认为应用状态不稳定,主动重启应用进程
解决方案:
- 在AndroidManifest.xml中为Activity添加配置:
android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout"
- 优化插件代码,在设置壁纸前后处理Activity生命周期:
// 设置壁纸前保存应用状态
// 设置完成后主动触发页面刷新而非依赖系统重启

