Android 最小化界面

Android界面最小化实现

在开发蓝牙模块功能时,涉及到蓝牙电话界面的最小化以及恢复功能。

  • 在Activity中调用moveTaskToBack(boolean nonRot)方法即可将Activity从前台移至后台。注意此时Activity并不是finish()退出。
    在这里插入图片描述
    参数为false,则表示只有当前activity是task根,指应用启动的第一个activity时,才有效;
    参数为true,则忽略这个限制,任何activity都可以有效。

  • 未启动应用B,activity的task任务状态
    在这里插入图片描述

  • 启动应用B,activity的task任务状态
    在这里插入图片描述

  • 重启启动应用B,task任务状态
    在这里插入图片描述

  • B界面执行返回按键之后,task状态
    在这里插入图片描述

  • moveTaskToBack接口调用之后,task当中的activity的顺序不会发送改变,加入应用A启动应用B,B通过调用该接口切换至后台,重启启动B之后,会执行B中的onRestart-onStart-onResume方法,不会重新调用onCreate(),如果此时B中按下Home按键,返回的还是界面A,这就是推到后台的功能。

  • 如果在Activity当中按下back按键,实际是调用finish()方法,此时应用会直接退出。但进程依然没有被杀死,android中每一个应用都运行于独立的一个虚拟机实例当中,所以在重启启动应用时一个类当中的静态对象依然处于运行时的状态,注意在合适位置复位这些状态。

  • 通常应用最小化时,我们会新启一个service,在service当中新增布局,类似view,监听新增的view,便于界面最大化
    在这里插入图片描述

  • 以下是官方api解释

public boolean moveTaskToBack (boolean nonRoot)
Since: API Level 1

Move the task containing this activity to the back of the activity stack. The activity’s order within the task is unchanged.

Parameters
nonRoot If false then this only works if the activity is the root of a task; if true it will work for any activity in a task.

Returns
If the task was moved (or it was already at the back) true is returned, else false.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值