`
quanminchaoren
  • 浏览: 911208 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android 监听home键(android:launchMode="singleTask" 与 onNewIntent(Intent intent) 的用法

阅读更多

android:launchMode="singleTask" 和 onNewIntent(Intent intent)两个特性,现总结一下经验:

android:launchMode="singleTask" 配置在 Mainifest 中,它保证了栈中此Activity总是只有一个,无论你启动它多少次;

onNewIntent(Intent intent) 是Override Activity的父类方法,只有仅在点Home键退出Activity而再次启动新的Intent进来才被调用到;

它们两结合使用,可以做到监听home键(仅当发起新的Intent)。

代码如下:

Manifest.xml

  1. < activity   android:name = ".OnNewIntentDemo"   
  2.             android:launchMode = "singleTask"   
  3.                   android:label = "@string/app_name" >   
  4.             < intent-filter >   
  5.                 < action   android:name = "android.intent.action.MAIN"   />   
  6.                 < category   android:name = "android.intent.category.LAUNCHER"   />   
  7.             </ intent-filter >   
  8.             < intent-filter >   
  9.                 < action   android:name = "android.intent.action.VIEW"   />   
  10.                 < category   android:name = "android.intent.category.DEFAULT"   />   
  11.                 < data   android:mimeType = "video/*"   />   
  12.             </ intent-filter >   
  13. </ activity >   

Activity 中

  1. @Override   
  2.     protected   void  onNewIntent(Intent intent) {  
  3.      if (DEBUG) Log.i(TAG,  "onNewIntent ~~~~~~~ intent = " +intent);  
  4.      super .onNewIntent(intent);  
  5.     }  

注意: 当按Home键退出,再长按Home键进入,此时onNewIntent不被访问,因为再次进入的时候没有被发起Intent 。

分享到:
评论

相关推荐

    Android代码-仿微信app.rar

    android:launchMode="singleTask" android:screenOrientation="portrait" android:theme="@style/horizontal_slide" android:windowSoftInputMode="adjustResize"&gt; &lt;!-- 添加好友 --&gt; android:name=...

    Android Theme以及解决启动黑屏的方法详解

    前言 本文主要介绍了关于Android Theme及解决启动黑屏的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 ... android:launchMode=singleTask&gt; &lt;!-- iPod主界面 --&gt; &lt;activity

    singleTask无效 (Nubia)apk

    来自我的文章http://www.jianshu.com/p/71d99b8bfd5d 中的apk,关于singleTask在Nubia手机无效的问题

    android 退出app 退出应用程序

    2 设置入口activity的启动模式android:launchMode="singleTask",重写onNewIntent方法, 在退出activity时,设置intent.setAction("exit_app");然后跳转到栈底activity, 这样就可以清除栈底之外的所有activity,...

    Android监听home键的方法详解

    本文实例分析了Android监听home键的方法。分享给大家供大家参考,具体如下: 如何知道Home按钮被点击了呢?做launcher的时候,看源代码发现原因 如果你的Activity具备这些属性 &lt;activity android:name=...

    Android代码-Android 一些重要知识点解析整理

    Android中AsyncTak的使用与源码分析 Android AsyncTask 完全解析,带你从源码的角度彻底理解 Android 异步消息处理机制完全解析,带你从源码角度彻底理解 Android 异步消息处理机制 让你深入理解 Looper、...

    Activity代理框架AyoActivityNoManifest.zip

     android:launchMode="singleTask"  android:theme="@style/AyoTransparentTheme" /&gt;    android:name="org.ayo.app.base.TmplActivitySingleTop"  android:configChanges="orientation|screenSize|...

    Android实现音乐播放器锁屏页

    本文实例为大家分享了Android音乐播放器锁屏页的具体代码,供大家参考,具体内容如下 首页我们先看一下效果图 下边来说一下实现逻辑,其主要思路就是新建一个activity使其覆盖在... android:launchMode=singleInstance

    Android第三方登录之腾讯QQ登录的实例代码

    布局文件 &lt;TextView android:layout_width=wrap_content android:layout_height=wrap_content android:text=登录成功 android:textSize=25sp ... android:launchMode=singleTask android:noHist

    Android EditText默认不弹出输入法的实现方法

    一、Android EditText默认不弹出输入法的办法: 1. 在AndroidManifest.xml中将需要默认隐藏键盘的Activity中添加属性即可(常用此方法) android:windowSoftInputMode=...android:launchMode=singleTask android:wi

    Android微信6.6.7版AndroidManifest清单

    Android微信6.6.7版...&lt;activity android:configChanges="keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize" android:label="@string/btr" android:launchMode="singleTop" android:name=...

    Android App多个入口的实现方法

    经常看到有App提供多个入口,就是桌面上显示有多种图标,点不同图标进入不同的功能页。 基本实现很简单,以下是步骤。 ... 在 &lt;application&gt; 里添加 &lt;activity-alias ... android:launchMode=singleTask

    Android顶栏定时推送消息

    在用安卓设备时,经常会应用到弹出推送消息。下面在此把我之前写的推送代码分享给大家,供大家参考,有不同见解的朋友欢迎提出,共同学习进步! 最近搜索看这个的朋友比较多。...android:launchMode=si

    android中的Activity启动方式

    &lt;activity android:name=".MainActivity"android:launchMode="standard" /&gt; Activity的四种启动模式: 1.standard 模式启动模式,每次激活Activity时都会创建Activity,并放入任务栈中。 2.singleTop 如果在...

    Activity 四种启动模式详细介绍

    Activity 四种启动模式详细介绍 在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动...activity android:name=.MainActivity android:launchMode

    AndroidKioskMode

    Android的KioskMode 用于在Android应用程序中处理信息亭模式的库。 它将设备限制为仅使用一项活动,而无法切换到其他应用。 特征: 在信息亭模式下运行您选择的活动 ... android:launchMode="singleTask" an

    LaunchMode的使用

    Activity是Android最常用的组件之一,也是最直观的组件,Activity启动时有四种模式,分别是: “standard” "singleTop" "singleTask" "singleInstance" 其中"standard"是默认模式。

    Android入门之Activity四种启动模式(standard、singleTop、singleTask、singleInstance)

    Activity启动模式的设置在AndroidManifest.xml文件中,通过配置Activity的属性android:launchMode=””设置。 一、启动模式介绍  启动模式简单地说就是Activity启动时的策略,在AndroidManifest.xml中的标签的...

    Android编程中Activity的四种启动模式

    本文实例讲述了Android编程中Activity的四种启动模式。...设置Activity的启动模式,只需要在AndroidManifest.xml里对应的标签设置android:launchMode属性,例如: &lt;activity android:name=.A1 android:launch

    android 四种活动启动模式的区别:1.standard、2.singleTop、3.singleTask、4.singleInstance

    一般的,活动会放在一个返回栈中。 在AndroidManifest.xml的活动中注册android:launchMode=” 四种启动模式 “ ...3、singleTask:会检测新创建的活动在栈中有没有出现,出现则将此活动上面的活动Destroy掉,使这个活

Global site tag (gtag.js) - Google Analytics