兩個Activity之間用介面回撥進行通訊
阿新 • • 發佈:2019-02-14
因為剛接觸的一個專案是藍芽連線,需求是要在掃描介面點選條目進行連線
時,在跳轉的另一個activity(姑且先叫它連線介面吧)上顯示連線的過程,
也就是彈出一個dialog,所以就需要用介面回撥的方式實現它.但是我之前
寫介面回撥沒有在兩個activity之間進行過介面回撥,所以就自己想了下寫
了下面一段程式碼.
先定義一個介面:
public interface ConnectionStateListener {
void onConnecting();
void onConnected();
void onDisConnected();
}
在定義一個介面管理類:
public class ConnectionStateListenerManager {
private ConnectionStateListener mListener;
private ConnectionStateListenerManager() {
}
private static final ConnectionStateListenerManager manager = new ConnectionStateListenerManager();
public static ConnectionStateListenerManager getInstance () {
return manager;
}
public void setConnectionStateListener(ConnectionStateListener mListener) {
this.mListener = mListener;
}
public void connected() {
if (mListener != null) {
mListener.onConnected();
}
}
public void connecting (){
if (mListener!=null){
mListener.onConnecting();
}
}
public void disconnected(){
if (mListener != null){
mListener.onDisConnected();
}
}
}
注意上面的介面管理類必須用單例模式,否則會空指標異常.
最後在掃描介面得到管理類物件,並呼叫其中的方法,在連線介面呼叫setConnectionStateListener()方法,並實現介面中的方法,這就可以了.
本人菜鳥一個,歡迎大家指正.謝謝!