【磨叽教程】Android进阶之Activity保活

我想很多开发者都遇到过这种情况:

用户打开我们的应用,在某个表单Activity填写信息准备提交,但是这个时候进来了一个电话或者用户去干其他事情而不得不离开当前界面(而不是直接退出)。等过了一段时间,用户打算重新来处理的时候发现之前填写的信息已经都不见了。

那么我们本节就讨论怎么让这个Activity保活。

在这里插入图片描述

众所周知

如果用户离开任务较长时间,系统会清除任务中除根 Activity 以外的所有 Activity。当用户再次返回到该任务时,只有根 Activity 会恢复。系统之所以采取这种行为方式是因为,经过一段时间后,用户可能已经放弃了之前执行的操作,现在返回任务是为了开始某项新的操作。

那么,如果我们要解决文首那个问题怎么办?很简单。

您可以使用一些 Activity 属性来解决:

alwaysRetainTaskState

如果在任务的根 Activity 中将该属性设为 “true”,则不会发生上述默认行为。即使经过很长一段时间后,任务仍会在其堆栈中保留所有 Activity。

clearTaskOnLaunch

如果在任务的根 Activity 中将该属性设为 “true”,那么只要用户离开任务再返回,堆栈就会被清除到只剩根 Activity。也就是说,它与 alwaysRetainTaskState 正好相反。用户始终会返回到任务的初始状态,即便只是短暂离开

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用HTML中的`<iframe>`标签来实现在当前网页图层之上弹出一个小窗口,同不会干扰其他组件位置。具体实现步骤如下: 1. 在当前网页中添加一个`<div>`标签,并设置其样式为`position:fixed; top:0; left:0; width:100%; height:100%; z-index:9999; background-color: rgba(0,0,0,0.5);`。这个`<div>`标签将作为遮罩层,用来覆盖整个页面,实现弹出窗口背景变暗的效果。 2. 在遮罩层中添加一个`<iframe>`标签,并设置其样式为`position:absolute; top:50%; left:50%; transform: translate(-50%,-50%); width:600px; height:400px; border:none;`。`<iframe>`标签中的`src`属性指向弹出窗口中要显示的页面地址。 3. 当需要弹出窗口,通过JavaScript动态添加遮罩层和`<iframe>`标签即可。 以下是一个简单的示例代码: ```html <!DOCTYPE html> <html> <head> <title>弹出窗口示例</title> <meta charset="utf-8"> <style> .mask { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 9999; background-color: rgba(0,0,0,0.5); } .popup { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 600px; height: 400px; border: none; } </style> </head> <body> <button onclick="openPopup()">点击打开弹出窗口</button> <div id="mask"></div> <script> function openPopup() { var mask = document.createElement('div'); mask.className = 'mask'; var popup = document.createElement('iframe'); popup.className = 'popup'; popup.src = 'https://www.example.com/popup.html'; mask.appendChild(popup); document.body.appendChild(mask); } </script> </body> </html> ``` 在这个示例中,点击按钮后会弹出一个大小为600x400的窗口,显示`https://www.example.com/popup.html`页面的内容,并且背景变暗。你可以根据实际需求,调整窗口大小和`<iframe>`标签中的`src`属性值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值