最近项目开发中用到了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(安卓)Activity界面切换添加动画特效
  2. android EditText设置不可写
  3. android 使用html5作布局文件: webview跟javascript交互
  4. android studio调试c/c++代码
  5. IM-A820L限制GSM,WCDMA上网的原理(其他泛泰机型可参考)7.13
  6. 锁屏界面
  7. android(NDK+JNI)---Eclipse+CDT+gdb调试android ndk程序
  8. Android(安卓)version and Linux Kernel version
  9. Android(安卓)闹钟管理类的使用

随机推荐

  1. android Studio listView 简单的用法
  2. 利用广播实现ip拨号
  3. Android将应用log信息保存文件
  4. Android(安卓)汉字转拼音
  5. 网络请求工具类HttpUtils
  6. Android笔记之使用Toast
  7. Android(安卓)Studio “Cannot create di
  8. android 运用百度地图画轨迹
  9. Android编译问题
  10. 广播机制 笔记