APP應用完美退出的方法的嘗試

來源:互聯網
上載者:User

標籤:

   會做出這個demo,主要原因在於下班後看到群裡都在談論這個問題,一下子興趣由起,下班了吃完飯繼續加班搞個demo來試試。廢話不多說了,以前寫上學作文也這樣,先搞個長長的開頭湊字數

    當然,說到完美APP退出,我以前經常用的方法就是使用List來儲存每個Activity,然後要退出的時候,就是要關掉所有的Activity,直接調用finishAll就行啦,其實就是一個ActivityManager的管理器而已。但是。。。但是。。。今天在群裡有人問了這個問題,群主竟然說用這種方法來退出應用的別說是我群裡的人。瞬間覺得自己low了很多,麻痹我不是這麼low的人啊,躺著也中槍啊,我畢設都是這麼做的啊!!!於是,興(一)趣(氣)一(之)來(下)搞起了demo來,查了網上的資料,貌似有兩種比較能接受,且還算完美實現退出的方法。下面就具體的講下實現的方法吧.。

   一。發送廣播退出(好像很多人都知道)

    這種退出方式很早就有所耳聞,但沒去嘗試,今天就網上搜了下,實現了,確實可以,比較推薦。

    具體代碼是這樣的,先建一個Activity的基類,作為來放Broadcast的地方,這樣其他Activity只要繼承此基類就行了,不用每次都要重寫一遍註冊和登出廣播。

    代碼如下:

public class BaseActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);IntentFilter filter = new IntentFilter();filter.addAction("com.jrue.exitApp");registerReceiver(mExitReceiver, filter);}private BroadcastReceiver mExitReceiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {if ("com.jrue.exitApp".equals(intent.getAction())) {context.unregisterReceiver(this);finish();}}};}

 

    在退出的時候只要去發送這個廣播就行啦:

                    case R.id.exit_use_broadcast:Intent intent = new Intent("com.jrue.exitApp");getApplicationContext().sendBroadcast(intent);        break;


好!完美運行,這個方法可以。


二。切換到後台,最後finish掉(其實不知道怎麼命名啦)

   原來大概是這樣的,不知道會不會理解錯。就是通過setFlags將其改變為 Intent.FLAG_ACTIVITY_CLEAR_TOP 狀態,而這個狀態具體怎麼講呢,就是進入的Activity若在棧中已經存在的時候,則將此Activity之上的其他Activity移除棧,以達到將目標Activity移至棧頂的目的。然後setAction的 Intent.ACTION_MAIN 找到程式的第一個Activity,也就是程式第一次開啟出現的Activity,很有可能就是棧底的Activity,所以我們這樣做的目的就很簡單啦。

   總結一下:就是故意放進去一個應用開啟第一個開啟的activity,然後改變Flags,讓第一個Activity之上的Activity出棧,使第一個Activity順利達到棧頂,然後直接finish(),因為棧中也就只有一個Activity了,finish就是關閉應用了。太騷了這方法。

   代碼如下:

Intent intent2 = new Intent(Intent.ACTION_MAIN);              intent2.addCategory(Intent.CATEGORY_HOME);              intent2.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);              startActivity(intent2);             // android.os.Process.killProcess(android.os.Process.myPid());            finish();

好啦。也就這樣了,demo的也會奉上,有用最好了,沒用可以無視之無視之~~~小弟不才啊!


demo下載





著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

APP應用完美退出的方法的嘗試

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.