引用:

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

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

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

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

代码如下:

Manifest.xml

  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>

Xhtml代码
  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 中

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

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

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

更多相关文章

  1. ReactNative与Android(安卓)集成踩坑
  2. Android高手进阶教程(七)之----Android(安卓)中Preferences的使
  3. android解析json(2)
  4. Android有用代码片段(三)
  5. 在Android中使用Html5
  6. Android(安卓)Duplicate files copied in APK
  7. android读取本地网页
  8. Android(安卓)NDK之发送短信
  9. android 子线程handler 实现

随机推荐

  1. Ubuntu11.04 Android编译时遇到 cannot f
  2. Android--permission大全
  3. android发送与接收超长短信
  4. Android关键概念
  5. 【Android开发】Android应用程序目录结构
  6. Android(安卓)adb 无线调试
  7. android IOS在WebView 和 JS 交互对比
  8. 【android】listview动态更新(与数据库之
  9. Unity3D 调用Android原生方法
  10. ANDROID IOS对字体加粗