android Activity运行后台不在最近任务栏显示

1.先介绍一个Activity主动跳转到后台但不会finish的方法

方法:public boolean moveTaskToBack(boolean nonRoot)

activity里有自带方法,参数如下:

nonRoot=false→ 仅当activity为task根(即首个activity例如启动activity之类的)时才生效

nonRoot=true→ 忽略上面的限制

这个方法不会改变task中的activity中的顺序,效果基本等同于home键

可以监听onKeyDown方法

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
        moveTaskToBack(true);
        return true;
    }
    return super.onKeyDown(keyCode, event);

}


2.在最近任务栏不显示activity,只需要在注册Activity时加上一个android:excludeFromRecents="true"属性即可,有了该属性Activity在结束后不会在最近任务栏中显示。


因为最近在做一个功能:在systemUi中添加一个录屏控制开关,因为录屏需要在Activity中启动,但启动录屏后不能在任务栏中看到该Activity并且该Activity不能在后台被销毁,

这个需要要解决两个问题:(1)activity需要在后台运行,(2)activity运行在后台不能在任务栏中

要解决这两个问题可用通过moveTaskToBack将Avtivity主动运行在后台,android:excludeFromRecents="true"属性可以将Activity不在最近任务栏显示。


猜你喜欢

转载自blog.csdn.net/zhuxingchong/article/details/80430753
今日推荐