自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

短時(shí)間內(nèi)認(rèn)識(shí)Android開源系統(tǒng)

移動(dòng)開發(fā) Android
下面文章著重介紹Android開源系統(tǒng)提供了三種菜單類型,他們分別為options menu,context menu,sub menu。

Android開源系統(tǒng)是GOOGLE于Google于2007年11月5日宣布,GOOGLE內(nèi)部會(huì)議據(jù)說號(hào)稱是***為移動(dòng)終端打造的真正開放和完整的Android開源系統(tǒng),不知道這個(gè)信息是不是真的很正確。

options menu就是通過按home鍵來顯示,context menu需要在view上按上2s后顯示。這兩種menu都有可以加入子菜單,子菜單不能種不能嵌套子菜單。options menu最多只能在屏幕最下面顯示6個(gè)菜單選項(xiàng),稱為icon menu,icon menu不能有checkable選項(xiàng)。多于6的菜單項(xiàng)會(huì)以more icon menu來調(diào)出。

稱為expanded menu。options menu通過activity的onCreateOptionsMenu來生成,這個(gè)函數(shù)只會(huì)在menu***次生成時(shí)調(diào)用。任何想改變options menu的想法只能在onPrepareOptionsMenu來實(shí)現(xiàn),這個(gè)函數(shù)會(huì)在menu顯示前調(diào)用。onOptionsItemSelected 用來處理選中的菜單項(xiàng)。

context menu是跟某個(gè)具體的view綁定在一起,在activity種用registerForContextMenu來為某個(gè)view注冊(cè)context menu。context menu在顯示前都會(huì)調(diào)用onCreateContextMenu來生成menu。onContextItemSelected用來處理選中的菜單項(xiàng)。

android還提供了對(duì)菜單項(xiàng)進(jìn)行分組的功能,可以把相似功能的菜單項(xiàng)分成同一個(gè)組,這樣就可以通過調(diào)用setGroupCheckable,setGroupEnabled,setGroupVisible來設(shè)置菜單屬性,而無須單獨(dú)設(shè)置。

Notepad中使用了options menu和context menu兩種菜單。首先來看生成options menu的onCreateOptionsMenu函數(shù)。這到底有何用處呢?其實(shí)這是一種動(dòng)態(tài)菜單技術(shù)(也有點(diǎn)像插件機(jī)制),若某一個(gè)activity,其類型是”android.intent.category.ALTERNATIVE”。

數(shù)據(jù)是”vnd.android.cursor.dir/vnd.google.note”的話,系統(tǒng)就會(huì)為這個(gè)activity增加一個(gè)菜單項(xiàng)。在androidmanfest.xml中查看后發(fā)現(xiàn),沒有一個(gè)activity符合條件,所以這段代碼并沒有動(dòng)態(tài)添加出任何一個(gè)菜單項(xiàng)。

對(duì)于上下文菜單項(xiàng)選中的事件處理,是通過重載onContextItemSelected實(shí)現(xiàn)的

  1. switch (item.getItemId()) {  
  2.          case MENU_ITEM_DELETE: {  
  3.              // Delete the note that the context menu is for  
  4.              Uri noteUri = ContentUris.withAppendedId(getIntent().getData(), info.id);  
  5.              getContentResolver().delete(noteUri, null, null);  
  6.              return true;  
  7.          }  
  8.      }  
  9.      return false;  

對(duì)于日志的刪除,首先調(diào)用ContentUris.withAppendedId(getIntent().getData(), info.id);來拼接出待刪除日志的URI.然后getContentResolver().delete(noteUri, null, null);調(diào)用下層的Content Provider去刪除此日志。

這里先不討論例子了,來看看官方文檔對(duì)Activity生命周期的介紹。

1Android開源系統(tǒng)用Activity Stack來管理多個(gè)Activity,所以呢,同一時(shí)刻只會(huì)有最頂上的那個(gè)Activity是處于active或者running狀態(tài)。其它的Activity都被壓在下面了。

2.如果非活動(dòng)的Activity仍是可見的(即如果上面壓著的是一個(gè)非全屏的Activity或透明的Activity),它是處于paused狀態(tài)的。在系統(tǒng)內(nèi)存不足的情況下,paused狀態(tài)的Activity是有可被系統(tǒng)殺掉的。只是不明白,如果它被干掉了,界面上的顯示又會(huì)變成什么模樣?看來下回有必要研究一下這種情況了。

3.幾個(gè)事件的配對(duì)可以比較清楚地理解它們的關(guān)系。Create與Destroy配成一對(duì),叫entrie lifetime,在創(chuàng)建時(shí)分配資源,則在銷毀時(shí)釋放資源;往上一點(diǎn)還有Start與Stop一對(duì),叫visible lifetime,表達(dá)的是可見與非可見這么一個(gè)過程;最頂上的就是Resume和Pause這一對(duì)了,叫foreground lifetime,表達(dá)的了是否處于激活狀態(tài)的過程。

4.因此,我們實(shí)現(xiàn)的Activity派生類,要重載兩個(gè)重要的方法:onCreate()進(jìn)行初始化操作,onPause()保存當(dāng)前操作的結(jié)果。

【編輯推薦】

  1. Android應(yīng)用程序組建原理深入剖析 
  2. Android SMS短信服務(wù)相關(guān)概念簡(jiǎn)述 
  3. PythonAndroid數(shù)據(jù)庫(kù)相關(guān)代碼解讀 
  4. PythonAndroid安裝卸載程序具體操作方法解析 
  5. Android應(yīng)用程序的四個(gè)關(guān)鍵點(diǎn) 
責(zé)任編輯:chenqingxiang 來源: 人民郵電出版社
相關(guān)推薦

2010-03-03 17:19:48

Android

2010-01-19 18:18:21

C++語(yǔ)言

2010-02-24 13:56:27

Python編程語(yǔ)言

2010-03-19 10:46:34

交換技術(shù)

2010-03-17 13:07:47

交換機(jī)故障

2015-01-08 14:04:49

電信CDMA

2010-03-16 10:32:23

配置交換機(jī)

2025-04-28 02:22:00

2009-11-25 15:31:40

VS2003 SDK

2013-01-13 10:01:18

2009-11-25 13:22:49

VS2003代碼

2022-03-17 14:36:20

后門網(wǎng)絡(luò)安全

2010-03-02 13:38:30

Android命令

2020-04-03 08:40:38

微軟谷歌無代碼

2017-12-02 07:33:30

蘋果Face ID多用戶

2017-08-02 08:52:19

2010-01-20 10:40:44

C++Test

2010-03-10 14:04:53

交換機(jī)故障

2010-04-29 14:15:15

Oracle Audi

2015-09-16 09:19:57

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)