當前位置:首頁 » 安卓系統 » android關閉多個activity

android關閉多個activity

發布時間: 2023-10-04 19:54:02

㈠ 在Android 中如何關閉應用以及所有的 Activity

Android程序有很多Activity,比如說主窗口A,調用了子窗口B,如果在B中直接finish(), 接下里顯示的是A。在B中如何關閉整個Android應用程序呢?本人總結了幾種比較簡單的實現方法。

1. Dalvik VM的本地方法
android.os.Process.killProcess(android.os.Process.myPid()) //獲取PID
System.exit(0); //常規java、c#的標准退出法,返回值為0代表正常退出

2. 任務管理器方法
首先要說明該方法運行在Android 1.5 API Level為3以上才可以,同時需要許可權
ActivityManager am = (ActivityManager)getSystemService (Context.ACTIVITY_SERVICE);
am.restartPackage(getPackageName());
系統會將,該包下的 ,所有進程,服務,全部殺掉,就可以殺干凈了,要注意加上
<uses-permission android:name=\"android.permission.RESTART_PACKAGES\"></uses-permission>
3. 根據Activity的聲明周期

3. 我們知道Android的窗口類提供了歷史棧,我們可以通過stack的原理來巧妙的實現,這里我們在A窗口打開B窗口時在Intent中直接加入標志 Intent.FLAG_ACTIVITY_CLEAR_TOP,這樣開啟B時將會清除該進程空間的所有Activity。
在A窗口中使用下面的代碼調用B窗口
Intent intent = new Intent();
intent.setClass(Android123.this, CWJ.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //注意本行的FLAG設置
startActivity(intent);
接下來在B窗口中需要退出時直接使用finish方法即可全部退出。

4.自定義一個Actiivty 棧,道理同上,不過利用一個單例模式的Activity棧來管理所有Activity。

不過建議使用第一種方式來退出應用程序

㈡ android 面試4: 如何退出Activity如何安全退出已調用多個Activity的Application

當然,也可以用killProcess()和System.exit()這樣的方法。 現提供幾個方法,供參考: 1、拋異常強制退出: 該方法通過拋異常,使程序Force Close。 驗證可以,但是,需要解決的問題是,如何使程序結束掉,而不彈出Force Close的窗口。 2、記錄打開的Activity: 每打開一個Activity,就記錄下來。在需要退出時,關閉每一個Activity即可。 3、發送特定廣播: 在需要結束應用時,發送一個特定的廣播,每個Activity收到廣播後,關閉即可。 4、遞歸退出 在打開新的Activity時使用startActivityForResult,然後自己加標志,在onActivityResult中處理,遞歸關閉。 除了第一個,都是想辦法把每一個Activity都結束掉,間接達到目的。 但是這樣做同樣不完美。 你會發現,如果自己的應用程序對每一個Activity都設置了nosensor,在兩個Activity結束的間隙,sensor可能有效了。 但至少,我們的目的達到了,而且沒有影響用戶使用。

㈢ 請教android中怎麼關閉一個指定的activity

退出所有Activity,目前網上比較流行的方式大概有以下幾種: ① 使用ActivityManager的方式; ② 自定義一個Activity集合類的方式; ③ 通過發送廣播的方式; ④ 通過殺死當前應用進程的方式; Activity有四種啟動模式,分別為:standard(默認模式)、singleTop、singleTask、singleInstance。本方式需要使用的就是singleTask啟動模式。 如果設置一個Activity的啟動模式為singleTask,那麼每次啟動此Activity時系統都會檢查當前任務棧中是否已經存在此Activity的實例。如果已經存在,則不再創建此Activity新的實例,而是調用已存在的Activity的onNewIntent()方法,並把intent作為此方法的參數傳遞給它。然後它就會被置於棧頂,並把它之前的所有的Activity移除掉。

㈣ android activity怎麼全部退出

我們在項目開發的時候可能會遇到安全退出應用的場景,如何能夠安全退出多個Activity?網上有很多方法,下面這種方法就是我最喜歡的,簡單又易懂。如下:每打開一個Activity,就記錄下來,在需要退出時,關閉每一個Activity即可。使用單例模式創建一個Activity管理對象,該對象中有一個Activity容器。定義一個Application類來存儲Activity對象的引用。代碼如下:
public class ExitAppliation extends Application
{
private List activityList = new LinkedList();
private static ExitAppliation instance;
private ExitAppliation()
{
}
// 單例模式中獲取唯一的MyApplication實例
public static ExitAppliation getInstance()
{
if (null == instance)
{
instance = new ExitAppliation();
}
return instance;
}
//添加Activity到容器中
public void addActivity(Activity activity)
{
activityList.add(activity);
}
// 遍歷所有Activity並finish
public void exit()
{
for (Activity activity : activityList)
{
activity.finish();
}

System.exit(0);
}
}</activity></activity>
註:Application類是為了那些需要保存全局變數設計的基本類,你可以在AndroidManifest.xml的標簽中進行自己的實現,這樣的結果是:當你的application或者包被建立的時候將引起那個類被建立。就是說application是用來保存全局變數的,並且是在package創建的時候就跟著存在了。所以當我們需要創建全局變數的時候,不需 要再像j2se那樣需要創建public許可權的static變數,而直接在application中去實現。只需要調用Context的getApplicationContext或者Activity的getApplication方法來獲得一個application對象,再做出相應 的處理。
然後在每個Activity的onCreate()方法中添加下面代碼:
ExitAppliation.getInstance().addActivity(this);
在需要結束所有Activity的時候調用exit方法:
ExitAppliation.getInstance().exit();

㈤ android 如何關閉指定的Activity

1、可以用一個統一管理容器list,把所有啟動activity放到一起,關閉C的時候,也把B找出來關閉。
2、另一個方法是,可以關閉C的時候,把其他所有A和B都銷毀,然後再重新啟動一個A。

熱點內容
安卓自帶的剪輯軟體哪個好用 發布:2025-01-24 22:15:22 瀏覽:391
centosyumphpfpm 發布:2025-01-24 22:14:19 瀏覽:154
反編譯看不懂代碼 發布:2025-01-24 22:04:52 瀏覽:139
zip4j加密 發布:2025-01-24 21:57:57 瀏覽:455
安卓錄屏功能在哪裡找到 發布:2025-01-24 21:55:24 瀏覽:651
ip參數用哪個伺服器設置 發布:2025-01-24 21:46:27 瀏覽:924
快捷方式緩存 發布:2025-01-24 21:28:35 瀏覽:826
22款途觀l買哪個配置最合適 發布:2025-01-24 21:28:33 瀏覽:235
ajax跨域訪問wcf 發布:2025-01-24 21:08:21 瀏覽:663
iphonecpp編譯器 發布:2025-01-24 21:05:52 瀏覽:202