需求是在閃屏頁面啟動定位功能,在mainactivity中更改位置資訊。如果定位功能在mainactivity生成之前完成。則在mainactivity初始化時就有位置資訊。若由於網路原因等在mainactivity生成之後才完成定位,這時候需要通知mainactivity改變定位資訊。就涉及到了觀察者模式。
最初我的想法是將閃屏頁面設為具體通知者,將mainactivity設為具體觀察者。結果在給通知者新增觀察者的時候發現了問題。因為在閃屏頁面中mainactivity還沒有被建立。也就沒有mainactivity物件。這就沒法給觀察者設定監聽了。
解決方法是將設定監聽的過程放到mainactivity中,而通知者設定為乙個單例的類。而觀察者依然是mainactivity。這樣如果定位在mainactivity建立之前執行完成,則不需要繫結監聽。如果在mainactivity建立之後執行完成,則mainactivity把自身設定為觀察者。在定位結束之後就會由通知者傳送通知給觀察者。
具體**:
mainactivity中繫結監聽
private igetcitynamelistener getcitynamelistener;
if (city_name != null) else
通知者類:
public class eventlistener implements igetcitynamelistener
// 單例模式使兩個activity使用同乙個通知者類物件。
public static eventlistener geteventlistener() }}
return eventlistener;
}@override
public void addweacher(icitynamewacher citynamewacher)
@override
public void removeweacher(icitynamewacher citynamewacher)
@override
public void sendchange() }}
封裝類中實現另外兩個Activity之間的跳轉
1.在乙個封裝類中實現另外兩個activity之間的跳轉時,要在類中宣告當前要跳轉的頁面。定義activity類,宣告mainactivity,命名任意 activity mainactivity 設定set方法用來對它賦值 public void setmainactivity activity ...
兩個Activity之間重複相互跳轉時遇到的坑
最近在做的乙個應用,主體為兩個activity,互動時需要來回在兩個activity之間跳轉,首先act a先啟動,然後act a啟動act b,之後act b可以通過startactivity 沒有其他方法了吧?再次回到act a,同樣在act a也可以再次進入act b 其中a b我們只需要初始...
兩個Activity切換例子
activity01 import android.content.intent import android.os.bundle import android.view.view import android.widget.button public class activity01 extend...