欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android编程模拟HOME键功能示例

程序员文章站 2024-03-04 09:54:35
本文实例讲述了android编程模拟home键功能的方法。分享给大家供大家参考,具体如下: 做一个类似于qq按返回键并不销毁activity的方法(即不调用activit...

本文实例讲述了android编程模拟home键功能的方法。分享给大家供大家参考,具体如下:

做一个类似于qq按返回键并不销毁activity的方法(即不调用activity.finish(),系统不调用 ondestroy),而是类似于按home键,让activity类似于“暂停”(即只调用onpause,ondestroy)。

代码如下:

public boolean onkeydown(int keycode, keyevent event) {
    if(keycode == keyevent.keycode_back){
    intent intent = new intent(intent.action_main);
    intent.setflags(intent.flag_activity_new_task);// 注意
    intent.addcategory(intent.category_home);
    this.startactivity(intent);
    return true;
  }
  return super.onkeydown(keycode, event);
}

特别注意:intent.setflags(intent.flag_activity_new_task); 这句,一定要加上,因为activity 的 launchmode 默认是以 standard 执行的,如果不添加这个标记则会创建新的activity 并放在与当前activity相同的task中。以下是 flag_activity_new_task 的说明 flag_activity_new_task标记

当传递给startactivity()的intent对象包含flag_activity_new_task标记时,系统会为需要启动的 activity寻找与当前activity不同的task。如果要启动的activity的affinity属性与当前所有的task的 affinity属性都不相同,系统会新建一个带那个affinity属性的task,并将要启动的activity压到新建的task栈中;否则将 activity压入那个affinity属性相同的栈中。

更多关于android相关内容感兴趣的读者可查看本站专题:《android开发入门与进阶教程》、《android调试技巧与常见问题解决方法汇总》、《android多媒体操作技巧汇总(音频,视频,录音等)》、《android基本组件用法总结》、《android视图view技巧总结》、《android布局layout技巧总结》及《android控件用法总结

希望本文所述对大家android程序设计有所帮助。