一.使用rxbus監聽:
原理:在baseactivity 中都初始化rxbus,同時監聽某種事件,當接收到這個事件的時候,就finish();————>其實就是類似廣播監聽事件**:
ublic class
baseactivity3
extends
//接收退出的指令,關閉所有activity
private
void
initrxbus() ,
error->;
}@override
protected
void
ondestroy()
}}...
public
class
event
rxbus 進行單例
public
class
rxbus
/*** 單例模式rxbus**
@return
*/ public
static
rxbus getinstance
() }}
return
rxbus2;
}/**
* 傳送訊息**
@param
object
*/public
void
post
(object object)
/*** 接收訊息**
@param
eventtype
*@param
*@return
*/ public
observabletoobserverable
(classeventtype)
}
最後在使用的時候呼叫:
rxbus.getinstance().post(new
event
());
二.容器式原理: 建立乙個單例容器,裡面有activity棧stack stack;並建立add,remove,finishall 方法三.廣播式在 baseactivty oncreat 的時候執行add,ondestroy 執行remove ;在我們需要的時候執行finishall 方法
原理:在baseactivity中**註冊廣播接受者,需要的時候傳送乙個廣播
public
class
baseactivity2
extends
@override protected
void
ondestroy()
class
exitreceiver
extends
broadcastreceiver
}}
singletask 方法原理:將mainactivity 設定成singletask,根據activity的啟動特性,singtask 的mainactivity只要一出現,就沒有其他的activity存在了,所以在mainactivity退出即可singletask 改進版
依然設定mainactivity的啟動方式
android:
launchmode="singletask"
重寫onnewintent()
@override
protected
void
onnewintent
(intent intent) } }
}
不管以什麼方式啟動的mainactivity ,都會呼叫onnewintent 方法,所以我們使用
intent intent = new
intent(this
,mainactivity.class
); intent.putextra(mainactivity.tag_exit, true
); startactivity(intent);
Android退出應用的方式
思路有這麼幾種 1.把啟動的activity都放入乙個棧中,當要退出應用的時候遍歷關閉 2.廣播方式,基類的activity中新增廣播接收器,接收到廣播就關閉activity,其他activity繼承這個activity,關閉時傳送廣播 3.廣播 singletask mainactivity啟動模...
Android應用中五種常用的menu
android menu在手機的應用中起著導航的作用,作者總結了5種常用的menu。前段時間比較流行,我最早是在海豚瀏覽器中看到的,當時耳目一新。最早使用左右推出選單的,聽說是facebook,我不確定訊息的真實性。左右推出選單如圖,為什叫path選單呢,因為我是最早在path應用中看到的,這裡也不...
Android應用程式完全退出
使用單例模式建立乙個 activity 管理物件,該物件中有乙個 activity 容器 具體實現自己處理,使用 linkedlist 等 專門負責儲存新開啟的每乙個 activity 並且容易理解 易於操作,非常不錯!類 儲存每乙個 activity 並實現關閉所有 activity 的操作 1 ...