成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

短時間內認識Android開源系統

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

Android開源系統是GOOGLE于Google于2007年11月5日宣布,GOOGLE內部會議據說號稱是***為移動終端打造的真正開放和完整的Android開源系統,不知道這個信息是不是真的很正確。

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

稱為expanded menu。options menu通過activity的onCreateOptionsMenu來生成,這個函數只會在menu***次生成時調用。任何想改變options menu的想法只能在onPrepareOptionsMenu來實現,這個函數會在menu顯示前調用。onOptionsItemSelected 用來處理選中的菜單項。

context menu是跟某個具體的view綁定在一起,在activity種用registerForContextMenu來為某個view注冊context menu。context menu在顯示前都會調用onCreateContextMenu來生成menu。onContextItemSelected用來處理選中的菜單項。

android還提供了對菜單項進行分組的功能,可以把相似功能的菜單項分成同一個組,這樣就可以通過調用setGroupCheckable,setGroupEnabled,setGroupVisible來設置菜單屬性,而無須單獨設置。

Notepad中使用了options menu和context menu兩種菜單。首先來看生成options menu的onCreateOptionsMenu函數。這到底有何用處呢?其實這是一種動態菜單技術(也有點像插件機制),若某一個activity,其類型是”android.intent.category.ALTERNATIVE”。

數據是”vnd.android.cursor.dir/vnd.google.note”的話,系統就會為這個activity增加一個菜單項。在androidmanfest.xml中查看后發現,沒有一個activity符合條件,所以這段代碼并沒有動態添加出任何一個菜單項。

對于上下文菜單項選中的事件處理,是通過重載onContextItemSelected實現的

  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;  

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

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

1Android開源系統用Activity Stack來管理多個Activity,所以呢,同一時刻只會有最頂上的那個Activity是處于active或者running狀態。其它的Activity都被壓在下面了。

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

3.幾個事件的配對可以比較清楚地理解它們的關系。Create與Destroy配成一對,叫entrie lifetime,在創建時分配資源,則在銷毀時釋放資源;往上一點還有Start與Stop一對,叫visible lifetime,表達的是可見與非可見這么一個過程;最頂上的就是Resume和Pause這一對了,叫foreground lifetime,表達的了是否處于激活狀態的過程。

4.因此,我們實現的Activity派生類,要重載兩個重要的方法:onCreate()進行初始化操作,onPause()保存當前操作的結果。

【編輯推薦】

  1. Android應用程序組建原理深入剖析 
  2. Android SMS短信服務相關概念簡述 
  3. PythonAndroid數據庫相關代碼解讀 
  4. PythonAndroid安裝卸載程序具體操作方法解析 
  5. Android應用程序的四個關鍵點 
責任編輯:chenqingxiang 來源: 人民郵電出版社
相關推薦

2010-03-03 17:19:48

Android

2010-02-24 13:56:27

Python編程語言

2010-01-19 18:18:21

C++語言

2015-01-08 14:04:49

電信CDMA

2010-03-17 13:07:47

交換機故障

2010-03-19 10:46:34

交換技術

2010-03-16 10:32:23

配置交換機

2025-04-28 02:22:00

2009-11-25 15:31:40

VS2003 SDK

2013-01-13 10:01:18

2010-03-02 13:38:30

Android命令

2022-03-17 14:36:20

后門網絡安全

2009-11-25 13:22:49

VS2003代碼

2020-04-03 08:40:38

微軟谷歌無代碼

2017-12-02 07:33:30

蘋果Face ID多用戶

2017-08-02 08:52:19

2025-05-21 08:18:49

2010-01-20 10:40:44

C++Test

2010-03-10 14:04:53

交換機故障

2010-04-29 14:15:15

Oracle Audi
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费国产一区 | 精品欧美乱码久久久久久1区2区 | 欧美日一区二区 | 伊人二区 | 午夜电影一区二区 | 91天堂| 日本久久黄色 | 成人欧美一区二区三区 | 在线欧美视频 | 成人亚洲精品久久久久软件 | 亚洲视频在线播放 | 99国产精品99久久久久久 | 国产精品视频免费播放 | 在线视频91| 岛国一区| 日韩1区2区 | 国产一区二区毛片 | 久久亚洲国产精品日日av夜夜 | 国产目拍亚洲精品99久久精品 | 国产午夜精品视频 | 99精品在线观看 | 亚洲综合无码一区二区 | 久久久国产一区二区三区 | 国产剧情一区 | 欧美1页 | 国产精品网址 | 五月综合久久 | 久久精品 | 日韩欧美国产精品一区二区三区 | 久在线| 欧美日韩综合视频 | 日本三级网址 | 三级视频在线观看电影 | 国产一级毛片精品完整视频版 | 日韩视频 中文字幕 | 午夜国产一区 | 色播视频在线观看 | 久久91| 国户精品久久久久久久久久久不卡 | 欧美一区二区三区 | 成人精品区|