最近项目开发中用到了android:launchMode="singleTask" 和 onNewIntent(Intent intent)两个特性,现总结一下经验:

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

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

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

代码如下:

Manifest.xml

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



Activity 中

Java代码
  1. @Override
  2. protectedvoidonNewIntent(Intentintent){
  3. if(DEBUG)Log.i(TAG,"onNewIntent~~~~~~~intent="+intent);
  4. super.onNewIntent(intent);
  5. }



注意: 当按Home键退出,再长按Home键进入,此时onNewIntent不被访问,因为再次进入的时候没有被发起Intent。
来自:http://blog.csdn.net/adreamer_bj/archive/2010/12/22/6091414.aspx


更多相关文章

  1. Android中Java和JavaScript交互解决方案,以及问题解决大全
  2. android 横竖屏限制的配置方法
  3. GDB在线调试Android(安卓)Framework Native C/C++代码
  4. Android(安卓)屏幕截图
  5. Android设置透明、半透明等效果
  6. Android下拉列表控件spinner-andoid学习之旅(十一)
  7. Android(安卓)Studio 使用NDK编译时常见的问题
  8. Android(安卓)启动 Launcher
  9. Android用户注册界面

随机推荐

  1. Android(安卓)Studio项目混淆后输出的文
  2. android 流量监控类TrafficStas
  3. Android获取返回键的点击事件
  4. android 应用图标大小
  5. Fragment 应用小结
  6. Android调用OpenCV2.4.10实现二维码区域
  7. Android初级教程IP拨号器初识广播接受者
  8. android 中间件开发
  9. Android(安卓)Material Design Library系
  10. 为Eclipse安装安卓开发插件ADT