欢迎来到代码驿站!

Android代码

当前位置:首页 > 移动开发 > Android代码

Android launcher中模拟按home键的实现

时间:2022-11-21 08:27:03|栏目:Android代码|点击:

Android launcher中模拟按home键的实现

Intent mHomeIntent = new Intent(Intent.ACTION_MAIN); 
    mHomeIntent.addCategory(Intent.CATEGORY_HOME); 
    mHomeIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK 
            | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); 
   getApplicationContext().startActivity(mHomeIntent);   // 要用getApplicationContext

     Android中,如果想把stack中的某个Activity moveTaskToFront,可以定义一个BroadcastReceiver接收某种类型的Broadcast,并在onReceive中start该Activity。但是需要注意的是,startActivity前面的context参数问题。

android的activity中不能使用startAcitivity来将自己提前到stack的前面,所以这个onReceive中的startActivity的context不能是Activity。

另外如果该BroadcastReceiver是动态注册的(dynamic register),此时在onReceive中传入的context的参数就是这个Activity,也不能使用。

对付上面这个问题比较有效的办法,就是不要直接使用这个context,而是使用context.getApplicationContext(),这样就可以实现moveTaskToFront了。

与moveTaskToFront相对应的是moveTaskToBack,这个相对比较简单,Activity已经提供了moveTaskToBack方法。当时需要注意的是,一旦调用这个方法,该Activity所在的task将会被整体搬迁到stack的最底端,需要特别注意。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

上一篇:Android Studio简单实现自定义日历

栏    目:Android代码

下一篇:Android开发中使用Volley库发送HTTP请求的实例教程

本文标题:Android launcher中模拟按home键的实现

本文地址:http://www.codeinn.net/misctech/219530.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有