導航:首頁 > 操作系統 > android退出整個程序

android退出整個程序

發布時間:2022-07-06 10:19:22

『壹』 android開發中完全退出程序的方法有幾種

總體思路就是寫在application中,每個activity創建時添加進集合,點退出按鈕,調用退出方法.
不管怎麼寫,都離不開添加,遍歷,銷毀.....

package com.lindsay.application;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.app.Application;
public class CloseActivityApplication extends Application
{
private List<Activity> activitys;
// 每啟動一個Activity---》放進集合
public void putActivity(Activity activity)
{
if (activitys == null)
{
activitys = new ArrayList<Activity>();
}
activitys.add(activity);
}
// 退出操作
public void exit()
{
// 銷毀Activity
try
{
for (Activity a : activitys)
{
if (a != null)
{
a.finish();
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
System.exit(0);
}
}
}

『貳』 安卓系統怎麼才能把那後台運行的程序關閉,謝謝!

安卓android後台的軟體自動啟動程序 - 使用android手機必讀(精華中的精華)2011-08-25 16:06不用在意剩餘內存的大小,其實很多人都是把使用其他系統的習慣帶過來來了。android大多應用沒有退出的設計其實是有道理的,這和系統對進程的調度機制有關系。如果你知道java,就能更清楚這機制了。其實和java的垃圾回收機制類似,系統有一個規則來回收內存。進行內存調度有個閥值,只有低於這個值系統才會按一個列表來關閉用戶不需要的東西。當然這個值默認設置得很小,所以你會看到內存老在很少的數值徘徊。但事實上他並不影響速度。相反加快了下次啟動應用的速度。這本來就是android標榜的優勢之一,如果人為去關閉進程,沒有太大必要。特別是使用自動關進程的軟體。(這里解決了大家非要關進程的誤區!)

到這里有人會說了,那為什麼內存少的時候運行大型程序會慢呢?其實很簡單,在內存剩餘不多時打開大型程序,會觸發系統自身的調進程調度策略,這是十分消耗系統資源的操作,特別是在一個程序頻繁向系統申請內存的時候。這種情況下系統並不會關閉所有打開的進程,而是選擇性關閉,頻繁的調度自然會拖慢系統。所以,論壇上有個更改內存閥值的程序可以有一定改善。但改動也可能帶來一些問題,取決於值的設定。
那麼,進程管理軟體有無必要呢?有的。就是在運行大型程序之前,你可以手動關閉一些進程釋放內存,可以顯著的提高運行速度。但一些小程序,完全可交由系統自己管理。

談到這里,可能有的朋友會問,如果不關程序是不是會更耗電。我就說說android後台的原理,你就明白了。android的應用在被切換到後台時,它其實已經被暫停了,並不會消耗cpu資源,只保留了運行狀態。所以為什麼有的程序切出去重進會到主界面。但是,一個程序如果想要在後台處理些東西,如音樂播放,它就會開啟一個服務。服務可在後台持續運行,所以在後台耗電的也只有帶服務的應用了。這個在進程管理軟體里能看到,標簽是service。至於廣播什麼的我就不涉及了。所以沒有帶服務的應用在後台是完全不耗電的,沒有必要關閉。這種設計本來就是一個非常好的設計,下次啟動程序時,會更快,因為不需要讀取界面資源,何必要關掉他們抹殺這個android的優點呢?(告訴我們如何合理使用進程管理軟體)
還有一個,為什麼android一個應用看起來那麼耗內存。大家知道,android上的應用是java,當然需要虛擬機,而android上的應用是帶有獨立虛擬機的,也就是每開一個應用就會打開一個獨立的虛擬機。這樣設計的原因是可以避免虛擬機崩潰導致整個系統崩潰,但代價就是需要更多內存。(跟塞班也不一樣,案桌不容易死機重啟)

以上這些設計確保了android的穩定性,正常情況下最多單個程序崩潰,但整個系統不會崩潰,也永遠沒有內存不足的提示出現。大家可能是被windows毒害得太深了,總想保留更多的內存,但實際上這並不一定會提升速度,相反卻喪失了程序啟動快的這一系統特色,很沒必要。大家不妨按我說的習慣來用用這個系統。

『叄』 Android開發:現在的app如何實現程序的徹底退出呢

Intent intent = new Intent(); intent.setAction(GlobalVarable.EXIT_ACTION); // 退出動作 this.sendBroadcast(intent);// 發送廣播 super.finish(); //退出後台線程,以及銷毀靜態變數 System.exit(0);

『肆』 android 開發應用程序中,退出功能怎麼做啊

可以使用java的回收機制,也能使用android特有的活動生存周期,以下方法均可嘗試使用:
1.System.gc(); 提示系統回收資源
2.System.exit(0); 系統退出
3.this.finish();在activity中調用結束該活動,如果是唯一運行的活動則應用程序結束
4.onDestroy();activity結束時調用,可以寫一些釋放資源的程序

『伍』 android關閉應用程序

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的聲明周期
我們知道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中按返回鍵怎麼退出一個用程序

重寫activty的onkeydown在用戶按下返回鍵的時候調用,所以我們可以通過重寫onkeydown的方法實現,還有可能到了MainActivity前面還有其他acitivty存活這,我們需要在onkeydown的時候把所有的activity都結束掉,為了實現這個我們先定義一個BaseActivity,在Oncreate和ondestroy生命周期里存儲acitivty的引用
用一個List集合存儲存活的acitivity,我們把list作為application成員
寫一個MyApp類,作為程序啟動的application

public class MyApp extends Application{
private List<Activity> activities = new ArrayList<Activity>();
public List<Activity> getActivities(){
return activities;
}
}

BaseActivity代碼如下
class BaseActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
((MyApp)getApplication()).getActivities().add(this);
}

@Override
protected void onDestroy() {
super.onDestroy();
((MyApp)getApplication()).getActivities().remove(this);
}

}

以後工程里的所有Activity都繼承於BaseActivity即可

最後是MainAcitivty的代碼,在onkeydown方法里遍歷list集合,調用每個activity的finish方法即可

public class MyActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_two);
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
List<Activity> activities = ((MyApp)getApplication()).getActivities();
for(Activity activity:activities){
activity.finish();
}
return super.onKeyDown(keyCode, event);
}
}

『柒』 Android如何退出程序

如果退出整個程序,如下操作:方式一:Intent intent=new Intent(Intent.ACTION_MAIN);intent.addCategory(Intent.CATEGORY_HOME);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);this.startActivity(intent);System.exit(0); 方式二:android.os.Process.killProcess(android.os.Process.myPid()); android 完全退出程序有幾個activity,有一需求是在一個activityA點擊back鍵退出系統而不是跳到之前的activity首先想到的是清空activityA的堆棧,使用intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 但是該activityA不是已經存在於堆棧底端的,所以清除的只是堆棧中該activityA上面的activity,但後退後還是會返回堆棧中該activityA下面的activity。

『捌』 在Android開發中,如何結束整個應用程序

每個activity都finish,每個服務都stopservice,就可以。
也可以調用system.exit(0);

『玖』 安卓手機關閉後台應用方法 如何徹底退出後台應用

若使用的是vivo手機,可以從屏幕底部中間往上滑後停頓調出後台應用(部分機型需點擊左鍵),按住軟體圖標上滑,即可關閉後台運行的應用。

閱讀全文

與android退出整個程序相關的資料

熱點內容
程序員搞笑花名 瀏覽:501
dota2怎麼設置國服伺服器地址 瀏覽:212
單片機高電平驅動 瀏覽:115
ios多選文件夾 瀏覽:909
加強行車調度命令管理 瀏覽:243
伺服器已禁用什麼意思 瀏覽:150
部隊命令回復 瀏覽:755
神奇寶貝伺服器地圖怎麼設置 瀏覽:382
加密演算法輸出固定長度 瀏覽:862
程序員去重慶還是武漢 瀏覽:121
伺服器如何撤銷網頁登錄限制 瀏覽:980
微信公眾平台php開發視頻教程 瀏覽:628
怎麼看蘋果授權綁定的app 瀏覽:255
壓縮機單級壓縮比 瀏覽:380
linux測試php 瀏覽:971
什麼時候梁旁邊需要加密箍筋 瀏覽:40
微信清粉軟體源碼 瀏覽:717
matlabdoc命令 瀏覽:550
如何去ping伺服器 瀏覽:75
ecshop安裝php55 瀏覽:817