`
rayloo
  • 浏览: 83953 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

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

view plaincopy to clipboardprint?
<activity android:name=".OnNewIntentDemo"
android:launchMode="singleTask"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="video/*" />
</intent-filter>
</activity>
<activity android:name=".OnNewIntentDemo"
android:launchMode="singleTask"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="video/*" />
</intent-filter>
</activity>

Activity 中

view plaincopy to clipboardprint?
@Override
protected void onNewIntent(Intent intent) {
if(DEBUG) Log.i(TAG, "onNewIntent ~~~~~~~ intent = "+intent);
super.onNewIntent(intent);
}
@Override
protected void onNewIntent(Intent intent) {
if(DEBUG) Log.i(TAG, "onNewIntent ~~~~~~~ intent = "+intent);
super.onNewIntent(intent);
}

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

补充说明:

在研发的项目中由于使用到 播放器为单例 singleInstance,再次调用,需要使用onNewIntent

分享到:
评论

相关推荐

    Android代码-仿微信app.rar

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

    singleTask无效 (Nubia)apk

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

    Activity代理框架AyoActivityNoManifest.zip

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

    android 退出app 退出应用程序

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

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

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

    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代码-Android 一些重要知识点解析整理

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

    Android实现音乐播放器锁屏页

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

    Activity 四种启动模式详细介绍

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

    Android顶栏定时推送消息

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

    android中的Activity启动方式

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

    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的生命周期及Intent

    1、设计界面,包括四个按钮,两个文本框。单击对应按钮可以启动对应activity。假定Activity A为启动...2、修改 Activity 的启动模式 LaunchMode,并通过 Log 信息来体会不同启动模式所对应的Activity 和 task 的关系

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

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

    360黑科技DroidPlugin.zip

    使用方法:集成在host中集成Droid Plugin项目非常简单:我们只是需要将Droid Plugin当作一个lib工程应用到主项目中,然后:在AndroidManifest.xml中使用插件的com.morgoo.droidplugin.PluginApplication:...

    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 App多个入口的实现方法

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

Global site tag (gtag.js) - Google Analytics