第一篇:Android之a(chǎn)ctivity總結(jié)——轉(zhuǎn)自論壇
Android之a(chǎn)ctivity總結(jié)——轉(zhuǎn)自論壇
一、什么是activity Activity 是用戶接口程序,原則上它會(huì)提供給用戶一個(gè)交互式的接口功能。它是 android 應(yīng)用程序的基本功能單元。Activity 本身是沒(méi)有界面的。所以activity類創(chuàng)建了一個(gè)窗口,開(kāi)發(fā)人員可以通過(guò)setContentView(View)接口把UI放到activity創(chuàng)建的窗口上,當(dāng)activity指向全屏窗口時(shí),也可以用其他方式實(shí)現(xiàn):作為漂浮窗口(通過(guò)windowIsFloating的主題集合),或者嵌入到其他的activity(使用ActivityGroup)。activity是單獨(dú)的,用于處理用戶操作。幾乎所有的activity都要和用戶打交道,二、activity生命周期
2011-11-20 20:23:32 上傳 下載附件(64.6 KB)由圖可知:
在一個(gè)Activity正常啟動(dòng)過(guò)程中,這些方法調(diào)用的順序是onCreate-> onStart-> onResume;在Activity被kill掉的時(shí)候方法順序是onPause-> onStop-> onDestroy,此為一個(gè)完整的Lifecycle。那么對(duì)于中斷處理(比如電話來(lái)了),則是onPause-> onStop,恢復(fù)時(shí)onStart-> onResume;如果當(dāng)前應(yīng)用程序的是一個(gè)Theme為T(mén)ranslucent(半透明)或者Dialog 的Activity那么中斷就是onPause ,恢復(fù)的時(shí)候onResume。
那么對(duì)于”O(jiān)ther app need memory”,就是我們手機(jī)在運(yùn)行一個(gè)應(yīng)用程序的時(shí)候,有可能打進(jìn)來(lái)電話發(fā)進(jìn)來(lái)短信,或者沒(méi)有電了,這時(shí)候程序都會(huì)被中斷,優(yōu)先去服務(wù)電話的基本功能,另外系統(tǒng)也不允許你占用太多資源,至少要保證一些功能(比如電話),所以資源不足的時(shí)候也就有可能被kill掉。方法在系統(tǒng)中的作用及我們應(yīng)該做什么:
onCreate:在這里創(chuàng)建界面,做一些數(shù)據(jù)的初始化工作;
onStart: 到這一步變成“用戶可見(jiàn)不可交互”的狀態(tài);
onResume:變成和用戶可交互的,(在Activity棧系統(tǒng)通過(guò)棧的方式管理這些Activity,即當(dāng)前Activity在棧的最上端,運(yùn)行完彈出棧,則回到上一個(gè)Activity);
onPause:到這一步是可見(jiàn)但不可交互的,系統(tǒng)會(huì)停止動(dòng)畫(huà)等消耗CPU的事情。從上文的描述已經(jīng)知道,應(yīng)該在這里保存你的一些數(shù)據(jù),因?yàn)檫@個(gè)時(shí)候你的程序的優(yōu)先級(jí)降
低,有可能被系統(tǒng)收回。在這里保存的數(shù)據(jù),應(yīng)該在onResume里讀出來(lái)。
onStop:變得不可見(jiàn),被下一個(gè)activity覆蓋了
onDestroy:這是Activity被kill前最后一個(gè)被調(diào)用方法了,可能是其他類調(diào)用finish方法或者是系統(tǒng)為了節(jié)省空間將它暫時(shí)性的干掉,可以用isFinishing()來(lái)判斷它,如果你有
一個(gè)Progress Dialog在線程中運(yùn)行,請(qǐng)?jiān)趏nDestroy里把他cancel掉,不然等線程結(jié)束的時(shí)候,調(diào)用Dialog的cancel方法會(huì)拋異常。
onPause,onstop,onDestroy,三種狀態(tài)下 activity都有可能被系統(tǒng)kill 掉。
三、Activity之間的通信
在 Android 中,不同的 Activity 實(shí)例可能運(yùn)行在一個(gè)進(jìn)程中,也可能運(yùn)行在不同的進(jìn)程中。因此我們需要一種特別的機(jī)制幫助我們?cè)?Activity 之間傳遞消息。Android 中通過(guò) Intent 對(duì)象來(lái)表示一條消息,一個(gè) Intent 對(duì)象不僅包含有這個(gè)消息的目的地,還可以包含消息的內(nèi)容,這好比一封 Email,其中不僅應(yīng)該包含收件地址,還可以包含具體的內(nèi)容。對(duì)于一個(gè) Intent 對(duì)象,消息“目的地”是必須的,而內(nèi)容則是可選項(xiàng)。
Intent負(fù)責(zé)對(duì)操作的動(dòng)作、動(dòng)作涉及數(shù)據(jù)、附加數(shù)據(jù)進(jìn)行描述,Android則根據(jù)此Intent的描述,負(fù)責(zé)找到對(duì)應(yīng)的組件,將 Intent傳遞給調(diào)用的組件,并完成組件的調(diào)用。因此,Intent在這里起著一個(gè)媒體中介的作用,專門(mén)提供組件互相調(diào)用的相關(guān)信息,實(shí)現(xiàn)調(diào)用者與被調(diào)用者之間的解耦。
在應(yīng)用中,我們可以以兩種形式來(lái)使用Intent:
直接Intent:指定了component屬性的Intent(調(diào)用setComponent(ComponentName)或者setClass(Context, Class)來(lái)指定)。通過(guò)指定具體的組件類,通知應(yīng)用啟動(dòng)對(duì)應(yīng)的組件。
間接Intent:沒(méi)有指定comonent屬性的Intent。這些Intent需要包含足夠的信息,這樣系統(tǒng)才能根據(jù)這些信息,在在所有的可用組件中,確定滿足此Intent的組件。對(duì)于直接Intent,Android不需要去做解析,因?yàn)槟繕?biāo)組件已經(jīng)很明確。
Android需要解析的是那些間接Intent,通過(guò)解析,將 Intent映射給可以處理此Intent的Activity、IntentReceiver或Service。Intent解析機(jī)制主要是通過(guò)查找已注冊(cè)在AndroidManifest.xml中的所有IntentFilter及其中定義的Intent,最終找到匹配的Intent。
四、Activity 的 Intent Filter
Intent Filter 描述了一個(gè)組件愿意接收什么樣的 Intent 對(duì)象,Android 將其抽象為 android.content.IntentFilter 類。在 Android 的 AndroidManifest.xml 配置文件中可以通過(guò)
當(dāng)使用 startActivity(intent)來(lái)啟動(dòng)另外一個(gè) Activity 時(shí),如果直接指定 intent 對(duì)象的 Component 屬性,那么 Activity Manager 將試圖啟動(dòng)其 Component 屬性指定的 Activity。否則 Android 將通過(guò) Intent 的其它屬性從安裝在系統(tǒng)中的所有 Activity 中查找與之最匹配的一個(gè)啟動(dòng),如果沒(méi)有找到合適的 Activity,應(yīng)用程序會(huì)得到一個(gè)系統(tǒng)拋出的異常。這個(gè)匹配的過(guò)程如下:
2011-11-20 20:23:59 上傳 下載附件(16.72 KB)
五、Activity的棧式管理
Android針對(duì)Activity的管理使用的是棧,就是說(shuō)某一個(gè)時(shí)刻只有一個(gè)Activity處在棧頂,當(dāng)這個(gè)Activity被銷毀后,下面的Activity才有可能浮到棧頂,或者有一個(gè)新的Activity被創(chuàng)建出來(lái),則舊的Activity就被壓棧沉下去了。Activity是Android程序的表現(xiàn)層。程序的每一個(gè)顯示屏幕就是一個(gè)Activity。正在運(yùn)行的Activity處在棧的最頂端,它是運(yùn)行狀態(tài)的。
2011-11-20 20:26:09 上傳 下載附件(23.43 KB)
當(dāng)在程序中調(diào)用 Activity.finish()方法時(shí),結(jié)果和用戶按下 BACK 鍵一樣:它告訴
Activity Manager該Activity實(shí)例可以被“回收”。隨后 Activity Manager 激活處于棧第二層的 Activity,把原 Activity 壓入到棧的第二層,從 Running 狀態(tài)轉(zhuǎn)到 Paused 狀態(tài)。
六、Activity的加載模式standard、singleTop、singleTask、singleInstance(其中前兩個(gè)是一組、后兩個(gè)是一組),默認(rèn)為standard standard:就是intent將發(fā)送給新的實(shí)例,所以每次跳轉(zhuǎn)都會(huì)生成新的activity。singleTop:也是發(fā)送新的實(shí)例,但不同standard的一點(diǎn)是,在請(qǐng)求的Activity正好位于棧頂時(shí)(配置成singleTop的Activity),不會(huì)構(gòu)造新的實(shí)例singleTask:和后面的singleInstance都只創(chuàng)建一個(gè)實(shí)例,當(dāng)intent到來(lái),需要?jiǎng)?chuàng)建設(shè)置為singleTask的Activity的時(shí)候,系統(tǒng)會(huì)檢查棧里面是否已經(jīng)有該Activity的實(shí)例。如果有直接將intent發(fā)送給它。singleInstance:首先說(shuō)明一下task這個(gè)概念,Task可以認(rèn)為是一個(gè)棧,可放入多個(gè)Activity。比如啟動(dòng)一個(gè)應(yīng)用,那么Android就創(chuàng)建了一個(gè)Task,然后啟動(dòng)這個(gè)應(yīng)用的入口Activity,那在它的界面上調(diào)用其他的Activity也只是在這個(gè)task里面。那如果在多個(gè)task中共享一個(gè)Activity的話怎么辦呢。舉個(gè)例來(lái)說(shuō),如果開(kāi)啟一個(gè)導(dǎo)游服務(wù)類的應(yīng)用程序,里面有個(gè)Activity是開(kāi)啟GOOGLE地圖的,當(dāng)按下home鍵退回到主菜單又啟動(dòng)GOOGLE地圖的應(yīng)用時(shí),顯示的就是剛才的地圖,實(shí)際上是同一個(gè)Activity,實(shí)際上這就引入了singleInstance。singleInstance模式就是將該Activity單獨(dú)放入一個(gè)棧中,這樣這個(gè)棧中只有這一個(gè)Activity,不同應(yīng)用的intent都由這個(gè)Activity接收和展示,這樣就做到了共享。當(dāng)然前提是這些應(yīng)用都沒(méi)有被銷毀,所以剛才是按下的HOME鍵,如果按下了返回鍵,則無(wú)效。
七、Activity的跳轉(zhuǎn)Activity跳轉(zhuǎn),無(wú)返回結(jié)果 這是最簡(jiǎn)單的Activity跳轉(zhuǎn)方式。從一個(gè)Activity啟動(dòng)另一個(gè)Activity,直接startActivity(new Intent(當(dāng)前Activity.this, 下一Activity.class))。
Activity跳轉(zhuǎn),返回?cái)?shù)據(jù)/結(jié)果 需要返回?cái)?shù)據(jù)或結(jié)果的,則使用startActivityForResult(Intent intent, int requestCode),requestCode的值是自定義的,用于識(shí)別跳轉(zhuǎn)的目標(biāo)Activity。跳轉(zhuǎn)的目標(biāo)Activity所要做的就是返回?cái)?shù)據(jù)/結(jié)果,setResult(int resultCode)只返回結(jié)果不帶數(shù)據(jù),或者setResult(int resultCode, Intent data)兩者都返回!而接收返回的數(shù)據(jù)/結(jié)果的處理函數(shù)是onActivityResult(int requestCode, int resultCode, Intent data),這里的requestCode就是startActivityForResult的requestCode,resultCode就是setResult里面的resultCode,返回的數(shù)據(jù)在data里面。
** 注意,在setResult后,要調(diào)用finish()銷毀當(dāng)前的Activity,否則無(wú)法返回到原來(lái)的Activity,就無(wú)法執(zhí)行原來(lái)Activity的onActivityResult函數(shù),看到當(dāng)前的Activity沒(méi)反應(yīng)。
第二篇:Android之a(chǎn)ctivity總結(jié)
Android之Activity總結(jié)
一、什么是Activity
Activity 是用戶接口程序,原則上它會(huì)提供給用戶一個(gè)交互式的接口功能。它是 android 應(yīng)用程序的基本功能單元。Activity 本身是沒(méi)有界面的。所以activity類創(chuàng)建了一個(gè)窗口,開(kāi)發(fā)人員可以通過(guò)setContentView(View)接口把UI放到activity創(chuàng)建的窗口上,當(dāng)activity指向全屏窗口時(shí),也可以用其他方式實(shí)現(xiàn):作為漂浮窗口(通過(guò)windowIsFloating的主題集合),或者嵌入到其他的activity(使用ActivityGroup)。activity是單獨(dú)的,用于處理用戶操作。幾乎所有的activity都要和用戶打交道
二、Activity生命周期(生命周期方法)
由圖可知,這些方法調(diào)用的順序:
1.Activity正常啟動(dòng):onCreate-> onStart-> onResume;
2.Activity被殺掉:onPause-> onStop-> onDestroy,此為一個(gè)完整的生命周期。3.中斷處理:onPause-> onStop,恢復(fù)時(shí)onRestart-> onStart-> onResume;
4.如果當(dāng)前Activity是半透明狀態(tài)或者對(duì)話框狀態(tài):那么中斷就是onPause ,恢復(fù)的時(shí)候onResume。
那么對(duì)于”O(jiān)ther app need memory”,就是我們手機(jī)在運(yùn)行一個(gè)應(yīng)用程序的時(shí)候,有可能打進(jìn)來(lái)電話發(fā)進(jìn)來(lái)短信,或者沒(méi)有電了,這時(shí)候程序都會(huì)被中斷,優(yōu)先去服務(wù)電話的基本功能,另外系統(tǒng)也不允許你占用太多資源,至少要保證一些功能(比如電話),所以資源不足的時(shí)候也就有可能被kill掉。
方法在系統(tǒng)中的作用及我們應(yīng)該做什么:
onCreate(創(chuàng)建):在這里創(chuàng)建界面,做一些數(shù)據(jù)的初始化工作;
onStart(可視狀態(tài)): 到這一步變成“用戶可見(jiàn)不可交互”的狀態(tài);
onResume(可交互狀態(tài)):變成和用戶可交互的,(在Activity棧系統(tǒng)通過(guò)棧的方式管理這些Activity,即當(dāng)前Activity在棧的最上端,運(yùn)行完彈出棧,則回到上一個(gè)Activity);
onPause(暫停狀態(tài)):到這一步是可見(jiàn)但不可交互的,系統(tǒng)會(huì)停止動(dòng)畫(huà)等消耗CPU的事情。從上文的描述已經(jīng)知道,應(yīng)該在這里保存你的一些數(shù)據(jù),因?yàn)檫@個(gè)時(shí)候你的程序的優(yōu)先級(jí)降
低,有可能被系統(tǒng)收回。在這里保存的數(shù)據(jù),應(yīng)該在onResume里讀出來(lái)。
OnStop(停止?fàn)顟B(tài)):變得不可見(jiàn),被下一個(gè)activity覆蓋了。
onDestroy(殺死):這是Activity被kill前最后一個(gè)被調(diào)用方法了,可能是其他類調(diào)用finish方法或者是系統(tǒng)為了節(jié)省空間將它暫時(shí)性的干掉。
onPause,onstop,onDestroy,三種狀態(tài)下 activity都有可能被系統(tǒng)殺掉。
Activity棧:Activity以棧的形式進(jìn)行管理,后進(jìn)先出的原則
三、Activity之間的通信
在 Android 中,不同的 Activity 實(shí)例可能運(yùn)行在一個(gè)進(jìn)程中,也可能運(yùn)行在不同的進(jìn)程中。因此我們需要一種特別的機(jī)制幫助我們?cè)?Activity 之間傳遞消息。
Android 中通過(guò) Intent 對(duì)象來(lái)表示一條消息,一個(gè) Intent 對(duì)象不僅包含有這個(gè)消息的目的地,還可以包含消息的內(nèi)容,這好比一封 Email,其中不僅應(yīng)該包含收件地址,還可以包含具體的內(nèi)容。
Intent是一種運(yùn)行時(shí)綁定(runtime binding)機(jī)制
Intent負(fù)責(zé)對(duì)操作的動(dòng)作、動(dòng)作涉及數(shù)據(jù)、附加數(shù)據(jù)進(jìn)行描述,Android則根據(jù)此Intent的描述,負(fù)責(zé)找到對(duì)應(yīng)的組件,將 Intent傳遞給調(diào)用的組件,并完成組件的調(diào)用。因此,Intent在這里起著一個(gè)媒體中介的作用,專門(mén)提供組件互相調(diào)用的相關(guān)信息,實(shí)現(xiàn)調(diào)用者與被調(diào)用者之間的解耦。
在應(yīng)用中,我們可以以兩種形式來(lái)使用Intent:
直接Intent(應(yīng)用程序內(nèi)部):指定了component(組建)屬性的Intent。通過(guò)指定具體的組件類,通知應(yīng)用啟動(dòng)對(duì)應(yīng)的組件。
間接Intent(應(yīng)用程序之間):沒(méi)有指定comonent屬性的Intent。這些Intent需要包含足夠的信息,這樣系統(tǒng)才能根據(jù)這些信息,在在所有的可用組件中,確定滿足此Intent的組件。
對(duì)于直接Intent,Android不需要去做解析,因?yàn)槟繕?biāo)組件已經(jīng)很明確。
Android需要解析的是那些間接Intent,通過(guò)解析,將 Intent映射給可以處理此Intent的Activity、IntentReceiver或Service。Intent解析機(jī)制主要是通過(guò)查找已注冊(cè)在AndroidManifest.xml(清單)中的所有IntentFilter(意圖過(guò)濾器)及其中定義的Intent,最終找到匹配的Intent。
橫屏?xí)r:onConfigurationChanged(配置改變))
橫屏以及出現(xiàn)鍵盤(pán)鍵盤(pán)時(shí)生命周期部重新開(kāi)始的方法: KeyboardHidHidden/orientation/screenSize 橫屏顯示:landscape 豎屏顯示:portrait
四大組建:activity:活動(dòng)、service:服務(wù)、content provider:內(nèi)容提供商、broadcast receiver:廣播收音機(jī)
Activity的所有面試題
什么是Activity? 請(qǐng)描述一下Activity 生命周期?
兩個(gè)Activity之間跳轉(zhuǎn)時(shí)必然會(huì)執(zhí)行的是哪幾個(gè)方法?
你后臺(tái)的Activity被系統(tǒng) 回收怎么辦?如果后臺(tái)的Activity由于某原因被系統(tǒng)回收可了,如何在被系統(tǒng)回收之前保存當(dāng)前狀態(tài)?
如何退出Activity?如何安全退出已調(diào)用多個(gè)Activity的Application? 兩個(gè)Activity之間怎么傳遞數(shù)據(jù)?
第三篇:Android 退出activity 的方式總結(jié)
Android 退出activity 的方式總結(jié)(2012-09-02 22:24:20)在android中使用:[activityname].this.finish();只是退出了activity的堆棧中,要真正的退出程序在手機(jī)cpu中的運(yùn)行,當(dāng)應(yīng)用不再使用時(shí),通常需要關(guān)閉應(yīng)用,可以使用以下三種方法關(guān)閉android應(yīng)用:
一 使用killProcess()函數(shù),首先獲取當(dāng)前進(jìn)程的id,然后殺死該進(jìn)程: android.os.Process.killProcess(android.os.Process.myPid());
通過(guò)這種方式不能將應(yīng)用程序完全殺死,并且他不會(huì)把當(dāng)前應(yīng)用應(yīng)用的Activity的task任務(wù)棧清空
二 在activity的生命周期函數(shù)中添加如下的函數(shù),強(qiáng)制關(guān)閉與該包有關(guān)聯(lián)的一切執(zhí)行:
ActivityManager am =(ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
am.restartPackage(“packagename”);
還需要在AndroidManifest.xml文件中加入如下的權(quán)限:
此做法:只能殺死別人,不能殺死自己
三、終止當(dāng)前正在運(yùn)行的Java虛擬機(jī),導(dǎo)致程序終止 System.exit(0);不會(huì)把自己的應(yīng)用程序殺死
企業(yè)中做法:
創(chuàng)建類app 繼承Application
AndroidMainfest-->name-->app //聲明該類為整個(gè)應(yīng)用程序全局的實(shí)例
創(chuàng)建整個(gè)應(yīng)用程序全局的實(shí)例
App.class: ArrayList
其他的Activity中: public void onCreate(Bundle savedInstanceState){ App app =(App)getApplication();//獲取應(yīng)用程序全局的實(shí)例引用
app.activities.add(this);//把當(dāng)前Activity放入集合中 }
public void onDestory(){ App app =(App)getApplication();//獲取應(yīng)用程序全局的實(shí)例引用
app.activities.remove(this);//把當(dāng)前Activity從集合中移除 }
安全退出:
在菜單退出按鈕的事件中定義如下代碼: App app =(App)getApplication();List
第四篇:東南大學(xué)——轉(zhuǎn)自論壇
轉(zhuǎn)自論壇,僅提供給想了解東南大學(xué)的人,讀一下。文章寫(xiě)于2013年。
這里首先從東南大學(xué)的三個(gè)全國(guó)第一的學(xué)科說(shuō)起:東南3個(gè)全國(guó)第一的學(xué)科,恰恰是東南從無(wú)到有,白手起家發(fā)展而來(lái),發(fā)展歷程可謂充滿了東南止于至善的精神。
東南交通學(xué)科:東南大學(xué)交通學(xué)院成立于1995年,其前身可追溯到原中央大學(xué)工學(xué)院土木工程系的路工組、五十至八十年代南京工學(xué)院土木工程系的道路教研組、1987年成立的運(yùn)輸工程研究所、1989年成立的交通運(yùn)輸工程系。從鄧學(xué)均老前輩,到黃衛(wèi)、王煒、劉松玉等各代交通人一路開(kāi)拓而來(lái),交通學(xué)科從無(wú)到有,從小到大,從大到強(qiáng),用了20多年時(shí)間,不但使交通學(xué)科成為學(xué)校科研骨干,更做到全國(guó)領(lǐng)先,甚至榮登第一寶座,令人感慨。
東南生醫(yī)學(xué)科:1984年10月由韋鈺院士創(chuàng)建生物醫(yī)學(xué)工程及儀器系,韋鈺院士電子出身,卻為東南生醫(yī)學(xué)科的發(fā)展指明了發(fā)展方向。東南生醫(yī)學(xué)科發(fā)展到今天,已經(jīng)成為了信息科學(xué)、生命科學(xué)、材料科學(xué)相互交叉的學(xué)科,不但鞏固了東南弱電學(xué)科實(shí)力,更為東南在生命科學(xué)領(lǐng)域爭(zhēng)得了話語(yǔ)權(quán),成為東南大學(xué)重要的學(xué)科增長(zhǎng)點(diǎn)。近年來(lái),東南生醫(yī)作為先驅(qū)者,開(kāi)展了腦認(rèn)知科學(xué)、學(xué)習(xí)科學(xué)等前沿科學(xué)研究,再次為東南生命科學(xué)領(lǐng)域打開(kāi)一片廣闊的天地。同樣用了20年,東南人把一個(gè)學(xué)科從0,做到了國(guó)內(nèi)領(lǐng)先,甚至國(guó)際一流。
東南藝術(shù)學(xué)科:1994年,東南大學(xué)成立了藝術(shù)系,在老前輩張道一先生的開(kāi)拓下,發(fā)展出了我國(guó)首家藝術(shù)學(xué)博士點(diǎn),第一個(gè)藝術(shù)學(xué)博士后流動(dòng)站,2007年?yáng)|南大學(xué)藝術(shù)學(xué)被教育部增列為國(guó)家重點(diǎn)學(xué)科,該學(xué)科是江蘇省截止目前唯一的藝術(shù)類國(guó)家重點(diǎn)學(xué)科,也是全國(guó)唯一一家屬于藝術(shù)學(xué)理論的國(guó)家重點(diǎn)學(xué)科。還是只用了將近20年的時(shí)間,東南藝術(shù)學(xué)人白手起家,讓藝術(shù)學(xué)成為東南工科大背景下的一大亮點(diǎn)。
如果說(shuō),東南的建筑、土木、電子、信息是歷史上一直就很強(qiáng)勢(shì)的學(xué)科,那么說(shuō)明東南在相關(guān)領(lǐng)域具有很高的歷史地位和學(xué)術(shù)底蘊(yùn),是東南厚重的歷史傳承。而交通、生醫(yī)、藝術(shù)等學(xué)科,并非東南傳統(tǒng)強(qiáng)勢(shì),這些學(xué)科在20年的時(shí)間,從無(wú)到有,從不入流到一流甚至頂尖,則說(shuō)明了東南的沖勁和奮斗的艱辛與輝煌。
展望未來(lái),東南大學(xué)的強(qiáng)勢(shì)學(xué)科和國(guó)家重大科技發(fā)展戰(zhàn)略、國(guó)民經(jīng)濟(jì)和社會(huì)發(fā)展方向、尖端前沿科學(xué)高度吻合,東南未來(lái)發(fā)展大有可為,充滿希望。結(jié)合未來(lái)發(fā)展趨勢(shì),東南大學(xué)形成了四大發(fā)展引擎:
第一、土建交學(xué)科群。未來(lái)20-30年,中國(guó)將完成城市化進(jìn)程,城市化將成為中國(guó)經(jīng)濟(jì)發(fā)展的核心驅(qū)動(dòng)力(參見(jiàn)李總理會(huì)議發(fā)言),東南大學(xué)頂尖的土建交學(xué)科集群,將從城市設(shè)計(jì)與規(guī)劃、建筑設(shè)計(jì)與施工、道路交通建設(shè)與管理等方面為中國(guó)城市化進(jìn)程做出貢獻(xiàn),同時(shí)該進(jìn)程將反哺東南土建交的學(xué)科發(fā)展,為東南大學(xué)發(fā)展換來(lái)巨大的空間。誠(chéng)然,隨著城市化的深入,土建學(xué)科的發(fā)展會(huì)面臨新的問(wèn)題,但是東南人還有至少20年的時(shí)間,去準(zhǔn)備今后的轉(zhuǎn)變或者轉(zhuǎn)型,開(kāi)辟出新的增長(zhǎng)點(diǎn)。東南人用了20年時(shí)間,把三個(gè)學(xué)科從0做到第一,我相信東南人也有能力和眼光完成今后的進(jìn)一步轉(zhuǎn)型。
第二、信息學(xué)科群。到2020年國(guó)家科技發(fā)展16個(gè)重大專項(xiàng)中,東南大學(xué)將在新一代寬帶無(wú)線移動(dòng)通信、極大規(guī)模集成電路制造技術(shù)及成套工藝、核心電子器件、高端通用芯片及基礎(chǔ)軟件三大領(lǐng)域大有可為,甚至占據(jù)主要地位,這些規(guī)劃將給東南極大的發(fā)展空間。以信息、電子為核心,將進(jìn)一步帶動(dòng)?xùn)|南的計(jì)算機(jī)、控制等信息大類學(xué)科。東南大學(xué)的強(qiáng)勢(shì)學(xué)科和國(guó)家重大科技戰(zhàn)略高度吻合,這將給東南大學(xué)提供持續(xù)的增長(zhǎng)潛力。
第三、生物醫(yī)學(xué)工程及相關(guān)學(xué)科群。之所以把該學(xué)科單獨(dú)列出,我覺(jué)得該學(xué)科恰恰契合當(dāng)今科學(xué)前沿——生命科學(xué)。有人說(shuō)21世界是生命學(xué)科大發(fā)展的世紀(jì)。東南大學(xué)的生物醫(yī)學(xué)工程早已突破傳統(tǒng)的工學(xué)研究范疇,與生命學(xué)科形成了高度融合。東南大學(xué)以生物醫(yī)學(xué)工程為學(xué)科平臺(tái),在生物信息的獲取、分析和建模,生物醫(yī)用納米材料與器件,生物電子學(xué),生物力學(xué)四大方向都有了長(zhǎng)期研究,其成果將有助于人類重大疾病的診斷、檢測(cè)、治療,同時(shí)更加深入認(rèn)識(shí)生命體所包含訊息,帶動(dòng)臨床醫(yī)學(xué)、基礎(chǔ)醫(yī)學(xué)等發(fā)展。東南的生科院,近幾年來(lái)也成為東南大學(xué)的學(xué)術(shù)特區(qū),在神經(jīng)生物學(xué)、遺傳學(xué)也開(kāi)展了卓有成效的研究。東南的又一強(qiáng)勢(shì)學(xué)科,恰恰緊追了當(dāng)前生命科學(xué)前沿,這將為東南發(fā)展帶來(lái)強(qiáng)大動(dòng)力。
第四、藝術(shù)學(xué)科群。2011年國(guó)家提出文化大繁榮戰(zhàn)略,其中文化機(jī)制創(chuàng)新及產(chǎn)業(yè)發(fā)展成為重要內(nèi)容。東南大學(xué)藝術(shù)學(xué)科擁有“藝術(shù)與創(chuàng)意產(chǎn)業(yè)研究”985學(xué)科平臺(tái),這將使東南大學(xué)在國(guó)家文化大發(fā)展、大繁榮的進(jìn)程中發(fā)揮重要作用,為東南大學(xué)提供發(fā)展動(dòng)力。
以上四大引擎將帶動(dòng)?xùn)|南大學(xué)今后發(fā)展
回顧歷史 東南大學(xué)有好的地方 也有不好的地方,但是一所大學(xué)的發(fā)展,不是以幾年的歷程來(lái)評(píng)判的,更重要的是展望未來(lái),東南大學(xué)歷史上的強(qiáng)勢(shì)學(xué)科及新一代東南人開(kāi)拓出來(lái)的強(qiáng)勢(shì)學(xué)科,如此高度契合國(guó)家發(fā)展戰(zhàn)略、科技發(fā)展前沿、社會(huì)發(fā)展方向,既是幸運(yùn),也是機(jī)會(huì),希望東南大學(xué)可以把握機(jī)會(huì),前景看好
補(bǔ)充點(diǎn)一,關(guān)于土建學(xué)科群的轉(zhuǎn)型,東南不用到20年后,其實(shí)東南現(xiàn)在已經(jīng)開(kāi)始了布局:東南大學(xué)于2010年成立了城市工程科學(xué)技術(shù)研究院,該院以解決復(fù)雜的大規(guī)模城市工程系統(tǒng)問(wèn)題,研究安全、舒適、健康及可持續(xù)性發(fā)展的城市基礎(chǔ)設(shè)施、系統(tǒng)和環(huán)境的現(xiàn)代科學(xué)理論及工程技術(shù),同時(shí)加強(qiáng)土建交通與材料、能源、環(huán)境、信息的深度交叉及融合,加快了土建交通高峰學(xué)科群優(yōu)先跨入世界一流行列的速度。東南大學(xué)這一學(xué)術(shù)特區(qū),將致力于建設(shè)環(huán)保、節(jié)能、舒適、安全、智能的城市,該研究院成立近3年,已經(jīng)牽頭973一項(xiàng),牽頭國(guó)家科技獎(jiǎng)一項(xiàng),863項(xiàng)目及國(guó)家科技支撐計(jì)劃若干項(xiàng)。
[補(bǔ)充點(diǎn)
二、除國(guó)家重大專項(xiàng)外,東南大學(xué)在“十二五”國(guó)家863計(jì)劃共設(shè)立的信息、生物與醫(yī)藥、新材料、先進(jìn)制造、先進(jìn)能源、資源環(huán)境、海洋、現(xiàn)代農(nóng)業(yè)、現(xiàn)代交通、地球觀測(cè)與導(dǎo)航十個(gè)領(lǐng)域中,在信息、生物與醫(yī)藥、現(xiàn)代交通、先進(jìn)制造四大領(lǐng)域大有可為,3位教授出任主題專家,其中黃慶安教授擔(dān)任先進(jìn)制造技術(shù)領(lǐng)域微納制造技術(shù)主題專家組專家(召集人)、陸祖宏教授擔(dān)任生物和醫(yī)藥技術(shù)領(lǐng)域前沿生物技術(shù)主題專家組專家、時(shí)龍興教授擔(dān)任信息技術(shù)領(lǐng)域微電子與光電子技術(shù)主題專家組專家。附“十五”863主題專家:尤肖虎教授(通信技術(shù)主題)、胡愛(ài)群教授(信息安全技術(shù)主題)、陸祖宏教授(生物信息技術(shù)主題)、戴先中教授(機(jī)器人技術(shù)主題)和趙長(zhǎng)隧教授(能源技術(shù)領(lǐng)導(dǎo)專家委員會(huì)),共計(jì)5位
“十一五”863主題專家:尤肖虎(通信技術(shù)主題)、王煒(現(xiàn)代交通技術(shù)主題),共計(jì)2位
863計(jì)劃,再次印證了東南大學(xué)的學(xué)科布局緊密結(jié)合國(guó)家重大科技發(fā)展戰(zhàn)略
第五篇:Android關(guān)于Activity管理的一個(gè)簡(jiǎn)單封裝
我的Android進(jìn)階之旅------>Android關(guān)于Activity管理的一個(gè)簡(jiǎn)單封裝
2015-07-30 12:10 631人閱讀 評(píng)論(2)收藏 舉報(bào)
分類:
Android應(yīng)用開(kāi)發(fā)(226)
版權(quán)聲明:本文為【歐陽(yáng)鵬】原創(chuàng)文章,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明出處!【http://blog.csdn.net/ouyang_peng】
如何管理當(dāng)前的運(yùn)行Activity棧,如何徹底退出程序,本文封裝了一個(gè)Activity管理類,可以方便隨時(shí)退出程序。
[java] view plain copy
1.import java.util.Stack;2.3.import android.app.Activity;4.import android.content.Context;5.6.public class ActivityManager {
7.private static Stack
10.instance = new ActivityManager();11.} 12.13.public static ActivityManager getInstance(){ 14.return instance;15.} 16.17./**
18.* 添加指定Activity到堆棧
19.*/
20.public void addActivity(Activity activity){ 21.if(activityStack==null){
22.activityStack=new Stack
24.activityStack.add(activity);25.} 26./**
27.* 獲取當(dāng)前Activity
28.*/
29.public Activity currentActivity(){
30.Activity activity=activityStack.lastElement();31.return activity;32.} 33./**
34.* 結(jié)束當(dāng)前Activity
35.*/
36.public void finishActivity(){
37.Activity activity=activityStack.lastElement();38.finishActivity(activity);39.} 40./**
41.* 結(jié)束指定的Activity
42.*/
43.public void finishActivity(Activity activity){ 44.if(activity!=null){
45.activityStack.remove(activity);46.activity.finish();47.activity=null;48.} 49.} 50./**
51.* 結(jié)束指定Class的Activity
52.*/
53.public void finishActivity(Class> cls){ 54.for(Activity activity : activityStack){ 55.if(activity.getClass().equals(cls)){ 56.finishActivity(activity);57.return;58.} 59.} 60.} 61.62./**
63.* 結(jié)束全部的Activity
64.*/
65.public void finishAllActivity(){
66.for(int i = 0, size = activityStack.size();i < size;i++){ 67.if(null!= activityStack.get(i)){ 68.activityStack.get(i).finish();69.} 70.}
71.activityStack.clear();72.} 73./**
74.* 退出應(yīng)用程序
75.*/
76.public void AppExit(Context context){ 77.try {
78.finishAllActivity();
79.android.app.ActivityManager activityMgr=(android.app.ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);80.activityMgr.restartPackage(context.getPackageName());81.System.exit(0);82.} catch(Exception e){ } 83.} 84.}
======
下面從http://004km.cn
17.* weibo : @橋下一粒砂
18.* date : 2012-7-8
19.*
20.*/
21.public class ActivityUtil { 22.23./**
24.* title : 設(shè)置Activity全屏顯示
25.* description :設(shè)置Activity全屏顯示。
26.* @param activity Activity引用
27.* @param isFull true為全屏,false為非全屏
28.*/
29.public static void setFullScreen(Activity activity,boolean isFull){ 30.Window window = activity.getWindow();
31.WindowManager.LayoutParams params = window.getAttributes();32.if(isFull){
33.params.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;34.window.setAttributes(params);
35.window.addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
36.} else {
37.params.flags &=(~WindowManager.LayoutParams.FLAG_FULLSCREEN);38.window.setAttributes(params);
39.window.clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);40.} 41.} 42.43./**
44.* title : 隱藏系統(tǒng)標(biāo)題欄
45.* description :隱藏Activity的系統(tǒng)默認(rèn)標(biāo)題欄
46.* @param activity Activity對(duì)象
47.*/
48.public static void hideTitleBar(Activity activity){
49.activity.requestWindowFeature(Window.FEATURE_NO_TITLE);50.} 51.52./**
53.* title : 設(shè)置Activity的顯示方向?yàn)榇怪狈较?/p>
54.* description :強(qiáng)制設(shè)置Actiity的顯示方向?yàn)榇怪狈较颉?/p>
55.* @param activity Activity對(duì)象
56.*/
57.public static void setScreenVertical(Activity activity){
58.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);59.} 60.61./**
62.* title : 設(shè)置Activity的顯示方向?yàn)闄M向
63.* description :強(qiáng)制設(shè)置Actiity的顯示方向?yàn)闄M向。
64.* @param activity Activity對(duì)象
65.*/
66.public static void setScreenHorizontal(Activity activity){
67.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);68.} 69.70./**
71.* title : 隱藏軟件輸入法
72.* description :隱藏軟件輸入法
73.* time : 2012-7-12 下午7:20:00
74.* @param activity
75.*/
76.public static void hideSoftInput(Activity activity){
77.activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);78.} 79.80./**
81.* title : 使UI適配輸入法
82.* description :使UI適配輸入法
83.* time : 2012-7-17 下午10:21:26
84.* @param activity
85.*/
86.public static void adjustSoftInput(Activity activity){ 87.activity.getWindow().setSoftInputMode(88.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);89.} 90.91./** 92.* title : 跳轉(zhuǎn)到某個(gè)Activity。
93.* description :跳轉(zhuǎn)到某個(gè)Activity
94.* time : 2012-7-8 下午3:20:00
95.* @param activity 本Activity
96.* @param targetActivity 目標(biāo)Activity的Class
97.*/
98.public static void switchTo(Activity activity,Class extends Activity> targetActivity){
99.switchTo(activity, new Intent(activity,targetActivity));100.} 101.102./**
103.* title : 根據(jù)給定的Intent進(jìn)行Activity跳轉(zhuǎn)
104.* description :根據(jù)給定的Intent進(jìn)行Activity跳轉(zhuǎn)
105.* time : 2012-7-8 下午3:22:23
106.* @param activity Activity對(duì)象
107.* @param intent 要傳遞的Intent對(duì)象
108.*/
109.public static void switchTo(Activity activity,Intent intent){ 110.activity.startActivity(intent);111.} 112.113./**
114.* title : 帶參數(shù)進(jìn)行Activity跳轉(zhuǎn)
115.* description :帶參數(shù)進(jìn)行Activity跳轉(zhuǎn)
116.* time : 2012-7-8 下午3:24:54
117.* @param activity Activity對(duì)象
118.* @param targetActivity 目標(biāo)Activity的Class
119.* @param params 跳轉(zhuǎn)所帶的參數(shù)
120.*/
121.public static void switchTo(Activity activity,Class extends Activity> targetActivity,Map
123.Intent intent = new Intent(activity,targetActivity);124.for(Map.Entry
126.}
127.switchTo(activity, intent);128.} 129.} 130.131./**
132.* title : 帶參數(shù)進(jìn)行Activity跳轉(zhuǎn) 133.* description :帶參數(shù)進(jìn)行Activity跳轉(zhuǎn)
134.* time : 2012-7-17 下午10:22:58
135.* @param activity
136.* @param target
137.* @param params
138.*/
139.public static void switchTo(Activity activity,Class extends Activity> target,NameValuePair...params){ 140.if(null!= params){
141.Intent intent = new Intent(activity,target);142.for(NameValuePair param : params){
143.setValueToIntent(intent, param.getName(), param.getValue());
144.}
145.switchTo(activity, intent);146.} 147.} 148.149.150./**
151.* title : 顯示Toast消息。
152.* description :顯示Toast消息,并保證運(yùn)行在UI線程中
153.* time : 2012-7-10 下午08:36:02
154.* @param activity
155.* @param message
156.*/
157.public static void toastShow(final Activity activity,final String message){
158.activity.runOnUiThread(new Runnable(){ 159.public void run(){
160.Toast.makeText(activity, message, Toast.LENGTH_SHORT).show();
161.} 162.});163.} 164.165./**
166.* title : 將值設(shè)置到Intent里
167.* description :將值設(shè)置到Intent里
168.* time : 2012-7-8 下午3:31:17
169.* @param intent Inent對(duì)象
170.* @param key Key
171.* @param val Value
172.*/ 173.public static void setValueToIntent(Intent intent, String key, Object val){
174.if(val instanceof Boolean)
175.intent.putExtra(key,(Boolean)val);176.else if(val instanceof Boolean[])
177.intent.putExtra(key,(Boolean[])val);178.else if(val instanceof String)
179.intent.putExtra(key,(String)val);180.else if(val instanceof String[])
181.intent.putExtra(key,(String[])val);182.else if(val instanceof Integer)
183.intent.putExtra(key,(Integer)val);184.else if(val instanceof Integer[])
185.intent.putExtra(key,(Integer[])val);186.else if(val instanceof Long)
187.intent.putExtra(key,(Long)val);188.else if(val instanceof Long[])
189.intent.putExtra(key,(Long[])val);190.else if(val instanceof Double)
191.intent.putExtra(key,(Double)val);192.else if(val instanceof Double[])
193.intent.putExtra(key,(Double[])val);194.else if(val instanceof Float)
195.intent.putExtra(key,(Float)val);196.else if(val instanceof Float[])
197.intent.putExtra(key,(Float[])val);198.} 199.200.}