android中實現(xiàn)完全退出程序方法(退出所有activity)
這是一個很多很多人都 會遇到的問題,我也試過了很多方法,都不怎么好用。
比如:
System.exit(0);
不行。
還有什么跳轉(zhuǎn)到第一個activity,同時把棧頂?shù)腶ctivity全部清除,最后再finish();還是不行。。不知道為什么。
這里是我自己的一個方法,效果非常好。
原理:在每個activity都注冊一個廣播接收器,用來接收關(guān)閉activity的廣播。當(dāng)需要退出程序的時候就發(fā)送一條關(guān)閉activity的廣播,這樣所有的activity都會接收到,然后所有activity都會自己finish了。
package com.example.exitsystem;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
/**
* 所有activity都繼承此類,同時也就等于注冊了廣播,
* 當(dāng)需要完全退出系統(tǒng)的時候就可以發(fā)送廣播,
* action為com.example.exitsystem.system_exit(自定義),
* 這樣就可以隨時退出所有的activity了
* @author LinZhiquan
*
*/
public class SuperActivity extends Activity {
/** 廣播action */
public static final String SYSTEM_EXIT = "com.example.exitsystem.system_exit";
/** 接收器 */
private MyReceiver receiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//注冊廣播,用于退出程序
IntentFilter filter = new IntentFilter();
filter.addAction(SYSTEM_EXIT);
receiver = new MyReceiver();
this.registerReceiver(receiver, filter);
}
@Override
protected void onDestroy() {
//記得取消廣播注冊
this.unregisterReceiver(receiver);
super.onDestroy();
}
private class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
finish();
}
}
}
package com.example.exitsystem;
import android.os.Bundle;
/**
* 普通activity, 繼承SuperActivity
* @author LinZhiquan
*
*/
public class MainActivity extends SuperActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
需要退出程序的時候發(fā)送一條廣播即可。
Intent intent = new Intent();
intent.setAction(SuperActivity.SYSTEM_EXIT);
sendBroadcast(intent);
相關(guān)文章
Android開發(fā)中優(yōu)秀的app 異常處理機(jī)制
這篇文章主要介紹了Android開發(fā)中優(yōu)秀的app 異常處理機(jī)制 的相關(guān)資料,需要的朋友可以參考下2015-12-12
Android 4.4以上"沉浸式"狀態(tài)欄效果的實現(xiàn)方法
Android與ios效果互仿早已不是什么稀奇的事,我猜大概這個效果來自ios吧,有爭議說這種效果不能叫做沉浸式,叫透明狀態(tài)欄更合適,我也感覺這和沉浸式的含義不太一致。但是大家都這么叫了,那就這樣唄。下面來一起看看關(guān)于Android 4.4以上"沉浸式"效果的實現(xiàn)方法。2016-09-09
Android中Item實現(xiàn)點(diǎn)擊水波紋效果
這篇文章主要給大家介紹了關(guān)于Android中Item實現(xiàn)點(diǎn)擊水波紋效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11
Android 自定義LayoutManager實現(xiàn)花式表格
這篇文章主要介紹了Android 自定義LayoutManager實現(xiàn)花式表格,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02
android開發(fā)中獲取手機(jī)分辨率大小的方法
不管是在我們的布局還是在實現(xiàn)代碼中進(jìn)行操控,我們的靈活性都不是局限于一個固定的數(shù)值,而是面對不同的手機(jī)對象都有一個適應(yīng)的數(shù)值。2013-04-04
進(jìn)度條ProgressBar及ProgressDialog(實例)
下面小編就為大家?guī)硪黄M(jìn)度條ProgressBar及ProgressDialog(實例)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07
Android pdf viewer在android studio應(yīng)用問題說明詳解
這篇文章主要介紹了Android pdf viewer在android studio應(yīng)用問題說明的相關(guān)資料,本文介紹的非常詳細(xì),具有參考借鑒價值,需要的朋友可以參考下2016-09-09

