歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android完全關閉應用程序終極解決方案

Android完全關閉應用程序終極解決方案

日期:2017/3/1 10:20:04   编辑:Linux編程

今天又碰到了這個問題。綜合以前的做法跟現在的情況,我找出一種相對比較好的做法。像網上到處說的sysytem.exit(), Android.os.Process.killProcess(android.os.Process.myPid()), ActivityManager類的restartPackage方法或者在Intent中直接加入標志Intent.FLAG_ACTIVITY_CLEAR_TOP等都存在這樣那樣的問題。我今天使用的是以下方法,在不破壞android管理Activity方式的前提下退出應用程序。

1. 如果你的程序只存在一個activity,那就很好辦,finish()即可。

2.如果你的程序存在多個activity,我們使用startActivityForResult()。假如A是你的主activity,B,D是2級activity,C,E是3級activity,那麼我們可以使用以下流程來結束:

我們重寫A的onActivityResult(),在該方法裡面判斷返回代碼是否是OK(OK代表退出應用程序),如果是我們就finish當前Activity。

我們重寫BD的onActivityResult(),在該方法裡面判斷返回代碼是否是OK,如果是我們就setResult(OK)然後finish當前Activity。

在CE裡面如果用戶確定退出,我們就只需要setResult(OK)然後finish當前Activity。

我們這種方法就是使用了逐層清理Activity的方法。

當然它存在很多問題:

1.如果Activity層級眾多的時候不適合使用。當然一般的應用程序最多有3級Activity。

歡迎提出問題探討。

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved