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

Java代碼   收藏代碼
  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 中

Java代碼   收藏代碼
  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。
來自:http://blog.csdn.net/adreamer_bj/archive/2010/12/22/6091414.aspx


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM