




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、An droid退出程序離開與關閉程序的彈出窗口An droid程序有很多Activity,比如說主窗口A調(diào)用了子窗口 B,在B中如何關閉整個An droid應用程序呢?這里An droid123給大家三種比較簡單的方法實現(xiàn)。首先要說明在B中直接使用finish(),接下來手機顯示的還是主窗口A,所以一起來看看An droid開發(fā)網(wǎng)是如何實現(xiàn)的吧.1. Dalvik VM的本地方法an droid.os .P rocess.kill Process(a ndroid.os .Pro cess.m yPi d() /獲取PID,目前獲取自己的也只有該API,否則從/proc中自己的枚舉其他進程吧
2、,不過要說明的是,結(jié)束其他進程不一定有權(quán)限,不然就亂套了。System.exit(O); /常規(guī)java、c#的標準退出法,返回值為0代表正常退出2.任務管理器方法首先要說明該方法運行在An droid 1.5 API Level為3以上才可以,同時需要權(quán)限an droid. permissio n.RESTART_ PACKAGES,我們直接結(jié)束自己的package即可,直接使用ActivityMa nager 類的 restart Package 方法即可,參數(shù)為Package name,該類通過getSystemService(Co ntext.ACTMTY_SERVICE)來實例化Ac
3、tivityManager對象,這種方法系統(tǒng)提供的,但需要顯示聲明權(quán)限,所以使用中需要綜合考慮。3.根據(jù)Activity 的聲明周期我們知道An droid的窗口類提供了歷史棧,我們可以通過stack的原理來巧妙的實現(xiàn),這里我們在A窗口打開B窗口時在Intent中直接加入標志In te nt.FLAG_ACTMTY_CLEAR_TO P,這樣開啟B時將會清除該進程空間的所有Activity 。在A窗口中使用下面的代碼調(diào)用B窗口Intent intent = new Inten t();in te nt.setClass(A ndroid123.this, CWJ.class);inten t.
4、setFlags(I nte nt.FLAG_ACTIVITY_CLEAR_T OP); /注意本行的FLAG設置startActivity(i nte nt);接下來在B窗口中需要退出時直接使用finish方法即可全部退出。對話窗口上的ICO N圖標范例說明此范例將說明設置離開與關閉程序的對話窗口提示選項。而打開這個對話窗口是由一個按鈕來處理,當單擊”按我離開”按鈕時,會出現(xiàn) AlertDialog 的信息,而AlertDialog 的內(nèi)容設置,先設置是否要顯示title的文字(也可以不設置),該范例是會讓它顯示的,所以使用 res/values/ string/app_about這個字符串
5、常數(shù)。下一步則是顯示 AlertDialog的正文信息,使用的方法是.setMessage,如果不使用的話,就會發(fā)現(xiàn)AlertDialog的正文的字段是不顯示的,故在這邊設置顯示內(nèi)容為提示對話內(nèi)容,正文的信息則是 res/values/stri ng/a pp _msg。而本范例最重要的并非是AlertDialog的設計或流程,因為這些在前一章已經(jīng)看過了,在此要示范的是如何在 AlertDialog里顯示圖片、配置”確定”以及”取消”按鈕,并學會如何判斷AlertDialog,讓 User 再在AlertDialog里單擊的按鈕事件,即設計在離開程序之前跳出一次確認是否關閉應用程序,并在Ale
6、rtDialog 上設計”確定”與"取消”按鈕,當單擊”確定”按鈕才會真的離開程序,單擊"取消”按鈕則會回到程序中。運行結(jié)果(見圖4-27)怎H罡S關用嗎?童擊嘰我離開弓安ffl后,彈出確認窗口,而wez范例程序1. src/irdc.ex04_26/EX04_26.java主程序設置的 AlertDialog 有兩個Butt on,或許有人會詢問:Butt on沒有在layout/mai n.xml里創(chuàng)建,為何會出現(xiàn)呢?這是因為在動態(tài)生成AlertDialog 的同時,也重寫了按鈕事件;AlertDialog 里面的Butt on語句,與一般在Layout當中先部署B(yǎng)ut
7、ton不一樣,”確定"Button跟”取消"Button都會有追加方法的描述。如”確定"Button的描述是PositiveButton,而”取消"Button 的命令為 NegativeButton在構(gòu)造 AlertDialog內(nèi)的”確定"Button 中的OnClickListener 事件后,如果發(fā)生21.22.25.mButton1.setOnClickListener(new Button.OnClickListener()PositiveButton事件,則以finish()結(jié)束程序,程序就會自行關閉,這個finish()代表是把整
8、個Activity 給關掉,并由An droid.os回收已配置的系統(tǒng)資源。1./* imp Ort程序略*/2.3.4.P ublic5.class EX04_26 extends Activity6.7.8./*聲明Button對象*/9.10.p rivate Button mButton1;11.12./* Called when the activity is first created. */13.14.Ovemde15.16.p ublic void onCreate(Bundle savedInstanceState)17.18.19.sup er.onCreate(saved
9、InstanceState);setContentView(R.layout.main);20.23./*取得Button對象*/24.mButton1 = (Button) findViewByld(R.id.myButton1);26.55.56.finishO;/* 關閉窗口 */27.Ovemde28.29.p ublic void onClick(View v)30.31.32./ TODO Auto-generated method stub33.34.35.new AlertDialog.Builder(EX04_26.this)36.37./*彈出窗口的最上頭文字*/38.39
10、.setTitle(R.string.a pp_about)40.41./*設置彈出窗口的圖式*/42.43.setlcon(R.drawable.hot)44.45./*設置彈出窗口的信息*/46.47.48.setMessage(R.string.a pp_about_msg) .set PositiveButton(R.string.str_ok,49.50.new DialogInterface.OnClickListener()51.52.53.p ublic void onClick54.(DialogInterface dialoginterface, int i)57.58.5
11、9.160.).setNegativeButton(R.string.str_no,61.62.new Dialoglnterface.OnClickListener()63.64.65./*設置跳出窗口的返回事件*/66.67.68.p ublic void onClick(Dialoglnterface dialoginterface, int i)2.).show();73.74.);75.復制代碼擴展學習AlertDialog.setIco n()可以置換對話窗口里的圖標,在不設置此方法時就只有文字,若使用了 setIcon()方法后,就會將圖標顯示在對話窗口當中。你可以試著使用 setIcon() 方法將Drawable ID傳入(默認的drawable路徑為res/drawable )即可,以下的代碼段可將原本的感嘆號圖標更換為一個心碎的小圖標。new AlertDialog.Builder(EX04_26.this)/*彈出窗口的最上頭文字*/.setTitle(R.stn ng.a pp _about) /*設置彈出窗口的圖式*/.setIc on( R.drawable.hot)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 罐體租賃合同范本
- 商業(yè)房屋合同范本
- 臺山租房合同范本
- β-keto-Phentermine-hydrochloride-生命科學試劑-MCE
- PBPE-hydrochloride-生命科學試劑-MCE
- 2025新疆機場(集團)有限責任公司庫爾勒管理分公司招聘(70人)筆試參考題庫附帶答案詳解
- ELQ-316-生命科學試劑-MCE
- 知識產(chǎn)權(quán)侵權(quán)案例分析與商業(yè)秘密的防范措施
- 電子商務平臺的數(shù)據(jù)庫技術與架構(gòu)
- 知識版權(quán)與教育行業(yè)的緊密關系解析
- 2025年寶雞職業(yè)技術學院單招職業(yè)技能測試題庫及完整答案1套
- 2025年車位買賣合同模板電子版
- AI創(chuàng)作指令合集系列之-教案寫作指令
- 關于投資協(xié)議書范本5篇
- 《反電信網(wǎng)絡詐騙法》知識考試題庫150題(含答案)
- 2025年上海市各區(qū)初三一模語文試卷(打包16套無答案)
- 2024 原發(fā)性肝癌診療指南 更新要點課件
- 《圓柱與圓錐-圓柱的表面積》(說課稿)-2023-2024學年六年級下冊數(shù)學人教版
- 【8語期末】蕪湖市2024-2025學年八年級上學期期末考試語文試題
- 常用臨床檢驗結(jié)果解讀
- 2025年浙江省金華義烏市人社局招聘雇員歷年高頻重點提升(共500題)附帶答案詳解
評論
0/150
提交評論