日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

正确退出activity_如何退出Activity

發(fā)布時間:2023/12/1 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 正确退出activity_如何退出Activity 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

如何退出Activity?如何安全退出已調用多個Activity的Application?對于單一Activity的應用來說,退出很簡單,直接finish()即可。

當然,也可以用killProcess()和System.exit()這樣的方法。

但是,對于多Activity的應用來說,在打開多個Activity后,如果想在最后打開的Activity直接退出,上邊的方法都是沒有用的,因為上邊的方法都是結束一個Activity而已。

當然,網(wǎng)上也有人說可以。

就好像有人問,在應用里如何捕獲Home鍵,有人就會說用keyCode比較KEYCODE_HOME即可,而事實上如果不修改framework,根本不可能做到這一點一樣。

所以,最好還是自己親自試一下。

那么,有沒有辦法直接退出整個應用呢?

在2.1之前,可以使用ActivityManager的restartPackage方法。

它可以直接結束整個應用。在使用時需要權限android.permission.RESTART_PACKAGES。

注意不要被它的名字迷惑。

可是,在2.2,這個方法失效了。

在2.2添加了一個新的方法,killBackgroundProcesses(),需要權限android.permission.KILL_BACKGROUND_PROCESSES。

可惜的是,它和2.2的restartPackage一樣,根本起不到應有的效果。

另外還有一個方法,就是系統(tǒng)自帶的應用程序管理里,強制結束程序的方法,forceStopPackage()。

它需要權限android.permission.FORCE_STOP_PACKAGES。

并且需要添加android:sharedUserId="android.uid.system"屬性

同樣可惜的是,該方法是非公開的,他只能運行在系統(tǒng)進程,第三方程序無法調用。

因為需要在Android.mk中添加LOCAL_CERTIFICATE := platform。

而Android.mk是用于在Android源碼下編譯程序用的。

從以上可以看出,在2.2,沒有辦法直接結束一個應用,而只能用自己的辦法間接辦到。

現(xiàn)提供幾個方法,供參考:

1、拋異常強制退出:

該方法通過拋異常,使程序ForceClose。

驗證可以,但是,需要解決的問題是,如何使程序結束掉,而不彈出Force Close的窗口。

2、記錄打開的Activity:

每打開一個Activity,就記錄下來。在需要退出時,關閉每一個Activity即可。

3、發(fā)送特定廣播:

在需要結束應用時,發(fā)送一個特定的廣播,每個Activity收到廣播后,關閉即可。

4、遞歸退出

在打開新的Activity時使用startActivityForResult,然后自己加標志,在onActivityResult中處理,遞歸關閉。

除了第一個,都是想辦法把每一個Activity都結束掉,間接達到目的。

但是這樣做同樣不完美。

你會發(fā)現(xiàn),如果自己的應用程序對每一個Activity都設置了nosensor,在兩個Activity結束的間隙,sensor可能有效了。

但至少,我們的目的達到了,而且沒有影響用戶使用。

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結

以上是生活随笔為你收集整理的正确退出activity_如何退出Activity的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。