1. 程式人生 > >AndroidManifest具體解釋之Application(有圖更好懂)

AndroidManifest具體解釋之Application(有圖更好懂)

http lib androidm 設有 組件 schema yml pro sha

可以包括的標簽:
  1. <activity>
  2. <activity-alias>
  3. <service>
  4. <receiver>
  5. <provider>
  6. <uses-library>

經常使用的屬性:

android:process

默認情況下,Android為每一個應用程序創建一個單獨的進程,全部組件執行在該進程中,這個默認進程的名字通常與該應用程序的包名同樣。比方

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.lt.mytest" >
那麽該程序默認的進程名為com.lt.mytest

設置該屬性能夠使得本應用程序與其他應用程序共享同樣的進程,只當這兩個應用程序也共享一個擁有同樣簽名的UserId。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    android:sharedUserId="android.uid.phone" >
與其他應用程序共享的一個Linux User Id的名字。


默認情況下,Android為每一個應用程序分配一個唯一的User Id。

然而。假設有多個應用程序都將該屬性設置為一個同樣的值,那麽它們將共享同樣的Id。

假設這些應用程序再被設置成執行在一個同樣的進程,它們便能夠彼此訪問對方的數據。

android:allowbackup
是否將程序增加到系統的備份和恢復架構中。

android:taskAffinity
Activity的歸屬,也就是Activity應該在哪個Task中,Activity與Task的吸附關系。默認假設沒有設置taskAffinity。則taskAffinity跟包名是一樣的
taskAffinity 和 FLAG_ACTIVITY_NEW_TASK可用來決定activity啟動時是否須要新建一個task。

我們分四種情況看一下這兩個標誌對啟動activity的影響:(前提:從MainActivity中啟動ActivityA)
1)、兩個標誌都不設置
2)、有FLAG_ACTIVITY_NEW_TASK
3)、無FLAG_ACTIVITY_NEW_TASK有taskAffinity (不同於MainActivity)
4)、有FLAG_ACTIVITY_NEW_TASK有taskAffinity
註意上面的標誌都是針對於啟動的ActivityA。FLAG_ACTIVITY_NEW_TASK 是在啟動ActivityA的Intent中設置的,taskAffinity 是在AndroidManifest中ActivityA中設置,另外註意這裏兩個actiity的啟動模式都設置為standard
1、先看第一中情況:

主要代碼:

<activity android:name=".ActivityA"    
			android:launchMode="standard"  
			android:label="@string/title_activityA">    
  <intent-filter>    
	  <action android:name="com.leaves.ipanel.ActivityA"/>    
	  <category android:name="android.intent.category.DEFAULT"/>    
  </intent-filter>    
</activity>  
MainActivity啟動activity
public void onClick(View arg0) {  
	// TODO Auto-generated method stub  
	Log.i(TAG, "--onClick--task id = " + getCurrentTaskId());  
	Intent intent = new Intent("com.leaves.ipanel.ActivityA");      

	startActivity(intent);   
} 
啟動A之後的堆棧:

技術分享

2、有FLAG_ACTIVITY_NEW_TASK
我們加入FLAG_ACTIVITY_NEW_TASK

public void onClick(View arg0) {  
	// TODO Auto-generated method stub  
	Log.i(TAG, "--onClick--task id = " + getCurrentTaskId());  
	Intent intent = new Intent("com.leaves.ipanel.ActivityA");      
	intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
	startActivity(intent);   
}  
啟動A之後的堆棧:

技術分享

3、無FLAG_ACTIVITY_NEW_TASK有taskAffinity (不同於MainActivity)

<activity android:name=".ActivityA"    
            android:launchMode="standard"  
            android:taskAffinity="com.leaves.test.ActivityA"  
          android:label="@string/title_activityA">    
       <intent-filter>    
           <action android:name="com.leaves.ipanel.ActivityA"/>    
           <category android:name="android.intent.category.DEFAULT"/>    
       </intent-filter>    
</activity> 
    public void onClick(View arg0) {  
        // TODO Auto-generated method stub  
        Log.i(TAG, "--onClick--task id = " + getCurrentTaskId());  
        Intent intent = new Intent("com.leaves.ipanel.ActivityA");      
          
        startActivity(intent);   
    }  
查看一下啟動A之後的堆棧:

技術分享

相關推薦

AndroidManifest具體解釋Application(好懂)

http lib androidm 設有 組件 schema yml pro sha 可以包括的標簽: <activity> <activity-alias> <service> <recei

AndroidManifest詳解Application(好懂)

能夠包含的標籤:    <activity>    <activity-alias>    <service>    <receiver>    <provider><uses-library>常用的屬

Swift具體解釋三----------函數(你想知道的都在這裏)

sta down type .com taobao opera ota types ref 函數(你想知道的都在這裏) 註:本文為作者自己總結。過於基礎的就不再贅述 ,都是親自測試的結果。如有錯誤或者遺漏的地方。歡迎指正。一起學習。 1、 函

Swift具體解釋六----------------枚舉、結構體、類

vbs 元素 zha cannot status popu 錯誤 san more 枚舉、結構體、類 註:本文為作者自己總結。過於基礎的就不再贅述 ,都是親自測試的

【數字像處理】五.MFC像點運算灰度線性變化、灰度非線性變化、閾值化和均衡化處理具體解釋

tput rgb 強制轉換 spa ros 例如 read 算法 nload 本文主要講述基於VC++6.0 MFC圖像處理的應用知識,主要結合自己大三所學課程《數字圖像處理》及課件進行解說。主要通過MFC單文檔視圖實現顯示BMP圖片

STLset具體解釋(二)

基本操作 二叉樹 mono itl 自己 pair leading 左右子樹 ews 首先來看看set集合容器: set集合容器實現了紅黑樹的平衡二叉樹數據結構。在插入元素時它會自己主動調整二叉樹的排列,把該元素放到適當的位置,而且 保證左右子樹平衡。平衡二

Javaweb servlet 開發具體解釋1

tom action fig 優先 sync exc http響應 write model 1.1 Tip:Servlet簡單介紹 Servlet是sun公司提供的一門用於開發動態web資源的技術。 Sun公司在其API中提供了一個servlet接口,用戶若想用發一個

SpringIOC篇章具體解釋

什麽 alt cti 反轉 獲得 ring 這樣的 圖片 多態 專題一 IOC 1.接口以及面向接口編程 a.結構設計中,分清層次以及調用關系,每層僅僅向外(或者上層)提供一組功能接口,各層間僅依賴接口而非實現類這樣做的優點是,接口實現的變動不影響各層

Android 最火框架XUtils註解機制具體解釋

lean uci 修飾 row 多個 mes 數組 1.2 sans 在上一篇文章Android 最火的高速開發框架XUtils中簡介了xUtils的基本用法,這篇文章說一下xUtils裏面的註解原理。 先來看一下xUtils裏面demo的代碼

MySQL優化——集群搭建步驟具體解釋

兩個 chgrp 應用服務 集群搭建 ria 進程 ini 而且 必須 轉載請註明出處:http://blog.csdn.net/l1028386804/article/details/46833179 1 概述 MySQL Cluster 是MySQL 適合於

Android簽名機制---簽名過程具體解釋

先來 文件內容 rfi eating general class stat ket 寫文章 一、前言又是過了好長時間,沒寫文章的雙手都有點難受了。今天是聖誕節,還是得上班。由於前幾天有一個之前的同事,在申請微信SDK的時候,遇到簽名的問題,問了我一下,結果把我難倒了。。我

ARC機制__strong具體解釋

size 是否可用 導致 引用 才幹 otto pre trac bject ARC機制之__strong具體解釋 __strong 解析: 默認情況下,一個指針都會使用 __strong 屬性,表明這是一個強引用。這意味著,僅僅要引用存在,對象就不能

Android開發AudioManager(音頻管理器)具體解釋

應該 數量 service eth out 開發 要求 type 路由 AudioManager簡單介紹: AudioManager類提供了訪問音量和振鈴器mode控制。使用Context.getSystemService(Context.AUDIO_SERVICE)

Kinect開發筆記三Kinect開發環境配置具體解釋

pc2 1.0 微軟 .aspx 技術分享 連接 實驗 family 不同 0、前言: 首先說一下我的開發環境,Visual Studio是2013的,系統是win8的64位版本號,SDK是Kinect for windows

Qt Quick QML 與 C++ 混合編程具體解釋

ack world 避免 pub start 模板方法 另一個 一秒 gis Qt Quick 技術的引入。使得你能夠高速構建 UI ,具有動畫、各種絢麗效果的 UI 都不在話下。但它不是萬能的。也有非常多局限性,原來 Qt 的一些技術,比方低階的網絡編程如 Q

Qt QuickStackView具體解釋(1)

left 記錄 內部 變化 原創 focus filo 郵箱 sta Qt Quick中有個StackView。我在《Qt Quick核心編程》一書中沒有講到。近期有人問起,趁機學習了一下,把它的基本使用方法記錄下來。 我準備分兩次來講。第一次講主要的

linux命令head、tail命令具體解釋

-c pri fadein rip lin comment pen inux ont head 語法 樣例 tail 語法 樣例 head和tail組合使用方法舉例 head 語法 head [-n -k ].

結構體指針 段錯誤 具體解釋(segmentation fault)

編譯 大型 進行 做了 不能 ack 程序 error 堆棧 一個網友問了我一個問題。一個C程序執行出現了段錯誤,這個問題非常好。非常多剛開始學習的人都easy犯這個錯誤,詳細代碼例如以下: 這個編譯沒有問題,可是執行是段錯誤 Segmentatio

Application具體解釋(一)

conf ica his 本地 數據類型 通過 eat pri abstract  1:Application是什麽? App

idea的使用svn篇--超詳細

記一下idea的svn使用有圖超詳細 根據在eclipse裡使用svn的經驗琢磨了一下idea,現把idea下svn的使用方法記錄如下 主要分為幾個功能來介紹 第一個功能當然是把遠端的svn程式碼拉到我們本地   下面的多出了一個svn的視窗,在左邊有加號可以新增一個