當前位置:首頁 » 安卓系統 » androidactivity關閉

androidactivity關閉

發布時間: 2024-10-27 08:50:01

A. 在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。

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

B. 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可能有效了。 但至少,我們的目的達到了,而且沒有影響用戶使用。

C. Android中指定關閉某個Activity

問題:在android開發中,總會遇到進入某個activity之後需要關閉其他部分activity,怎麼解決呢?

最直接粗暴的解決辦法就是:

      步驟一:在需要關閉的那個activity中設置一個變數記錄這個activity。例如:           

            public static Activity1 instance;

      步驟二:在該activity的onCreate方法中指定這個activity。例如:

      @Override

      protected void onCreate(Bundle savedInstanceState) {

          super.onCreate(savedInstanceState);

          instance=this;

      步驟三:在需要關閉指定的activity的方法中直接finish。例如:

          Activity1.instance.finish();

D. Android Activity的關閉問題

你說的閃屏的activity是啟動的廣告頁?首先要保證你按返回就退出的app是在棧的底部,這樣在這個頁面調finish();就會直接完全的退出app,可以通過activity的啟動模式來控制,這個你查一下就會很清楚的,我這里簡單說一下:
1.在清單文件中,<Activity>標簽中加入android:launchMode = ""這個屬性,控制啟動模式,或者JAVA文件中也可以,不過不太一樣。
standard: 默認模式 可以實例化多次,每次都會創建一個新的實例
singleTop:可以實例化多次,但是棧頂只能出現一個
singleTask:只能創建一個Activity的實例
singleInstance:當啟動這種模式的Activity時,系統會分配一個新的任務task,並把Activity的實例放到棧的底部,他不允許其他的實例和它共享一個棧
2.在Activity中通過Intent對象來設置,優先順序高於xml文件中的設置:
FLAG_ACTIVITY_SINGLE_TOP 等同於 singleTop
FLAG_ACTIVITY_CLEAR_TOP 同singleTask 相似,當棧中存在要啟動的Activity實例,首先會把在它之上的實例移除,並且銷毀,然後銷毀當前的Activity實例,重寫創建新的實例
FLAG_ACTIVITY_NEW_TASK

必須在<Activity>添加屬性android:taskAffinity="com.other" 包名 android:alwaysRetainTaskState="true"只有設置了這兩個屬性,系統才會為當前實例創建新的任務,並放到棧的底部

E. android 如何關閉另一個應用程序activity

首先一點
android的app絕大都的肯定是全屏的。接著問題就來了。你說A調用了B。那麼界面肯定處於B的狀態。要想A關閉B的話。肯定得返回A,然後再去關閉B,但是根據Activity
的生命周期的,如果沒有重寫返回鍵的響應的方法話,你按返回鍵應該B就被會被關閉才對。。以上是根據你先給的意思我發表的疑惑。
覺得我說的不對。你可以吧問題說的再詳細點,

熱點內容
學cnc數控編程 發布:2024-10-27 11:04:56 瀏覽:226
mallat演算法 發布:2024-10-27 11:03:57 瀏覽:33
講腳本 發布:2024-10-27 10:47:54 瀏覽:713
存儲免疫細胞 發布:2024-10-27 10:46:56 瀏覽:493
粉標溯源碼 發布:2024-10-27 10:44:28 瀏覽:139
網吧伺服器如何搭建 發布:2024-10-27 10:27:49 瀏覽:391
安卓手機如何設置不讓玩王者榮耀 發布:2024-10-27 10:27:43 瀏覽:762
沒有配置的游戲怎麼玩 發布:2024-10-27 10:25:32 瀏覽:431
c語言好看 發布:2024-10-27 10:14:25 瀏覽:604
java寫入數組 發布:2024-10-27 10:06:59 瀏覽:178