android 新建專案基類設計

2021-06-29 02:32:29 字數 3766 閱讀 6022

看到這個圖感覺熟悉的兄弟姐妹們就可以直接略過本篇啦...因為我要將要把它們乙個個地拿出來長篇大論咯。

1

/**2

* 應用程式實體3*

@author

change4*

5*/6public

7private activitymanager activitymanager = null; //

activity管理類

8private executor excutor = null; //

執行緒池執行器

9public

程式中用來快取應用程式配置字段

10@override

11public

void

oncreate()

1617

public

activitymanager getactivitymanager()

2021

public

executor getexcutor()

當然,這個類得在androidmanifest.xml中配置以下才能使用。

runnable()

7 });

下面我們還會在baseactivity中使用它來獲取activitymanager。

二、activitymanager(該類用來管理程式中所有的activity例項,如返回時只需要呼叫endactivity()結束當前 activity,退出程式時呼叫finishallactivity()結束所有activity,此外還有跳轉到指定activity的方 法:finishallactivityexceptone,這些在頁面跳轉時都是很方便的)

這種設計**於物件導向的模擬,activity就相當於一疊撲克牌,我們只能看到最上面的一張,而且越後放上的就先展示,那麼用棧來管理最恰當不過了。

1

/**2

* activity管理類,防止activity跳轉混亂3*

4* @author

change5*/

6public

class

activitymanager

1415

/**16

* 單例項

17*

18*

@return

19*/

20public

static

activitymanager getinstance()

24return

activitymanager;25}

2627

28/**

29* 將activity移出棧

30*

31*

@param

activity

32*/

33public

void

popactivity(activity activity) 37}

3839

/**40

* 結束指定activity

41*

42*

@param

activity

43*/

44public

void

endactivity(activity activity) 50}

5152

/**53

* 獲得當前的activity(即最上層)

54*

55*

@return

56*/

57public

activity currentactivity()

6364

/**65

* 將activity推入棧內

66*

67*

@param

activity

68*/

69public

void

pushactivity(activity activity)

73activitystack.add(activity);74}

7576

/**77

* 彈出除cls外的所有activity

78*

79*

@param

cls80

*/81

public

void popallactivityexceptone(class extends activity>cls)

87if

(activity.getclass().equals(cls))

90popactivity(activity);91}

92}9394

/**95

* 結束除cls之外的所有activity,執行結果都會清空stack

96*

97*

@param

cls98

*/99

public

void finishallactivityexceptone(class extends activity>cls) else

107}

108}

109110

/**111

* 結束所有activity

112*/

113public

void

finishallactivity()

118}

119 }

如何使用更為恰當呢?接下來,我們看看baseactivity這個類,上面兩個類的基本使用均有體現。

三、baseactivity(所有專案中定義的activity的父類,一般來所它繼承activity,如果程式中需要用到fragment,請繼承fragmentactivity)

它的設計用到了繼承,有高耦合的特性,以至於所有子類都能直接訪問其中公用和受保護的方法。在其中執行了activity入棧操作,簡化了子類activity的處理。並且在銷毀activity讓棧中的對應物件引用彈出。維護stack內資料的真確性。

1

/**2

* activity基礎類,作為程式中所有activity的父類,便於管理,與公有方法的呼叫。3*

4* @author

change5*

6*/7public

class baseactivity extends

activity

1516

@override

17protected

void ondestroy()

2223

/**24

* activity跳轉

25*

@param

from

26*

@param

to27

* @param

data 攜帶資料

28*/

29protected

void goto(context from,class extends baseactivity>to,bundle data)

3536 }

其中在 .pushactivity(

this); //

將activity推入管理棧

寫**是枯燥的,但設計卻是有趣的,多思考,多觀察,也許會有不同的收穫,自勉,共勉。

所屬分類:

android

新建Android工程需要的開源專案

retrofit很有創意的一款開源網路框架,讓使用者自定義介面,並使用其提供的註解,對介面進行解析和呼叫,是square旗下的產品之一 動態 和反射。其實retrofit無非就是讓使用者建立介面,使用自己指定的規則進行網路訪問,把介面傳入retrofit,介面上附著的規則由retrofit進行層層解...

第十一周專案4 1 類族的設計 基類 點類

問題及 檔名稱 project.cpp 作 者 陳文青 完成日期 2015年5月21日 版 本 號 v1.0 問題描述 1 先建立乙個point 點 類,包含資料成員x,y 座標點 實現需要的成員函式,並設計main函式完成測試 程式輸入 程式輸出 include includeusing name...

C 設計抽象基類的策略

1 分析相關物件的需求,設計出一組實現公共功能的函式。2 將這些函式作為基類的虛函式 或純虛函式 它們定義了乙個 統一的公共介面。3 由該類基類派生出若干子類,在各子類中實現這些虛函式。includeusing namespace std class container 抽象類 virtual do...