应用常驻后台?需要用户对手机做配置

为解决Android应用常驻后台难题,本文详细介绍各主流手机厂商如小米、华为、魅族、VIVO、OPPO及三星系统的后台管理设置,包括自启动管理、通知管理、网络助手等功能配置,以提升应用稳定性和用户体验。

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

转载自: https://blog.youkuaiyun.com/Negrooo/article/details/79540067

应用常驻后台?需要用户对手机做配置

现在 Android 软件想常驻后台已经不太可能了,各个手机厂商为了防止手机常驻后台采取了不同的解决方案,好处是用户告别了手机的卡顿、耗电、隐私泄露等现象,不好的地方就是用户设置太麻烦了。

现在手机厂商有各自的手机管理软件,这种差别对安卓开发人员来说也是一种挑战,需要对各个厂商的手机进行适配。

就拿推送来说,想要提高推送的到达率,需要开发人员去集成小米推送、华为推送、魅族推送、极光推送。相同的功能在不同的手机上就要走不同的渠道,费时费力。

之所以想要应用常驻后台,除了推送的需求以外,还有其他一些需求场景。比如像 iOS 那样可以注册 iBeacon 唤醒、Location 唤醒。

希望 Google 官方可以早日给点解决方案。

接下来我们看看不同厂商的 Android 系统应该怎么设置:

小米【MIUI】

官网

  • 自启动管理:需要把应用加到【自启动管理】列表,否则杀进程或重新开机后进程不会开启,只能手动开启应用。

添加到自启动管理以后,应用就可以监听各种系统广播进行拉活。

  • 通知栏设置:应用默认都是显示通知栏通知,如果关闭,则收到通知也不会提示。

  • 有没有遇到这种情况:测试同学把手机的通知栏通知关闭,然后给你提 BUG !!!

  • 网络助手:可以手动禁止已安装的第三方程序访问 2G/3G 和 WIFI 的网络和设置以后新安装程序是否允许访问 2G/3G和 WIFI 的网络

  • MIUI 7 神隐模式:允许应用进行自定义配置模式,应用在后台保持联网可用,否则应用进入后台时,应用无法正常接收消息。【设置】下电量和性能中【神隐模式】

  • 小米手机切到后台之后,网络、定位、蓝牙都不正常了! 检查一下【神隐模式】吧。

    华为【EMUI】

    官网

    • 自启动管理:需要把应用加到【自启动管理】列表,否则杀进程或重新开机后进程不会开启,只能手动开启应用。

    • 后台应用保护:需要手动把应用加到此列表,否则设备进入睡眠后会自动杀掉应用进程,只有手动开启应用才能恢复运行。

    • 通知管理:应用状态有三种:提示允许禁止。禁止应用则通知栏不会有任何提醒。

    魅族【Flyme】

    官网

    • 自启动管理:需要把应用加到【自启动管理】列表,否则杀进程或重新开机后进程不会开启,只能手动开启应用。

    • 通知栏推送:关闭应用通知则收到消息不会有任何展示

    • 省电管理:安全中心里设置省电模式,在【待机耗电管理】中允许应用待机时,保持允许,否则手机休眠或者应用闲置一段时间,无法正常接收消息。

    VIVO【Funtouch OS】

    官网

    • 内存一键清理:需要将应用加入【白名单】列表,否则系统自带的 “一键加速”,会杀掉进程。

    • 自启动管理:需要将应用加入 “i管家” 中的【自启动管理】列表,否则重启手机后进程不会自启。但强制手动杀进程,即使加了这个列表中,后续进程也无法自启动。

    OPPO【ColorOS】

    官网

    • 冻结应用管理:【设置】-【电池】-【耗电保护】,找到相应应用程序关闭【后台冻结】和【检测到异常时自动优化】。被优化的程序,无法在后台正常接收信息。

    • 自启动管理:【手机管家】-【权限隐私】-【自启动管理】。注意:开启了自启动以后,用户主动杀死进程,还是不能自启动。

    • 内存一键清理:【最近程序列表】-【下拉锁定】。程序锁定之后,一键清理就不会清理掉进程了。

    三星

    • 内存一键优化:需要将应用加入【白名单】列表,否则系统内存优化后,会杀掉应用进程。

    • 自启动管理:需要把应用加到【自启动管理】列表,否则杀进程或重新开机后进程不会开启,只能手动开启应用。

    还有哪些 Android 系统需要配置,希望大家踊跃留言,一起完善起来,造福苦逼的 Android 攻城狮。

    参考资料:

### UniApp 应用常驻后台的方法 为了使 UniApp 应用能够在后台持续运行而不被操作系统终止,可以利用 `plus` 对象提供的 API 来设置应用进入后台后的行为。具体来说,在应用即将转入后台时调用特定接口来请求保持后台活动。 #### 设置应用在关闭时转至后台而非完全退出 当用户点击设备上的 Home 键或电源键使得应用程序进入到后台模式而不是彻底结束进程,可以通过如下方式配置: ```javascript // App.vue 或 main.js 中全局监听页面生命周期事件 export default { onLaunch() { plus.navigator.setFullscreen(true); // 可选:全屏显示 uni.onAppHide(() => { console.log('应用隐藏'); // 防止应用被杀死,使其挂起于后台 plus.runtime.setKeepAlive({ success(e) { console.log("设置成功"); }, fail(e) { console.error(`设置失败 ${JSON.stringify(e)}`); } }); }); uni.onAppShow((options) => { console.log('应用显示', options); }) } } ``` 此代码片段展示了如何注册两个回调函数分别处理应用从前台切换到后台 (`onAppHide`) 和从后台回到前台 (`onAppShow`) 的场景。其中最关键的部分在于调用了 `plus.runtime.setKeepAlive()` 方法尝试阻止系统回收该应用所占用资源从而达到近似“常驻”的效果[^2]。 需要注意的是,不同平台对于后台任务的支持程度有所差异,尤其是 Android 系统可能会因为内存管理机制自动清理掉长时间处于后台应用实例;因此上述方案并不能保证绝对意义上的永久在线,但对于大多数应用场景已经足够满足需求。 另外,如果涉及到更复杂的后台服务比如定时推送通知等功能,则可能还需要借助 WebSocket 进行服务器端通信配合前端接收消息并更新 UI 层面的通知提示[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值