Android moveTaskToBack方法测试

发布于:2023-01-16 ⋅ 阅读:(496) ⋅ 点赞:(0)

前言

moveTaskToBack ---------字面意思将任务向后移动

具体什么意思呢?

遇事不决看源码


    /**
     * 将包含此活动的任务移动到活动堆栈的后面。活动在任务中的顺序不变。
	 * 参数:
     * Move the task containing this activity to the back of the activity
     * stack.  The activity's order within the task is unchanged.
     * 
	 * 
	 * nonRoot–如果为false,则仅当活动是任务的根时才有效;如果为true,它将适用于任务中的任何活动。
     * @param 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.
     *
     * 如果任务已移动(或已在后面),则返回true,否则返回false
     * @return If the task was moved (or it was already at the
     *         back) true is returned, else false.
     */
    public boolean moveTaskToBack(boolean nonRoot) {
        return ActivityClient.getInstance().moveActivityTaskToBack(mToken, nonRoot);
    }

moveTaskToBack调用后,task中activity的顺序不会发生变化,A启动B,B中调用此方法退到后台,重新启动应用会调用B中的onRestart-onStart-onResume方法,不会重新调用onCreate,而且在B中按下back键返回的还是A,这就是退到后台的功能。

在activity中按下back键,实际是调用了finish方法,应用退出。虽然应用已经退出,但进程没有被杀死,android中一个应用运行于独立的一个虚拟机实例中,所以在重新启动应用时一个类中的静态对象还保持着运行时的状态,注意在合适位置复位这些状态。

加入启动一个activity后执行 moveTaskToBack 会发生什么

 - 点击运行了moveTaskToBack()方法
 -  onPause()
 -  onStop()
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到